阿里云——云智能 一面 面经
阿里云约面试挺意思,还没做笔试之前就约面试了
——————— 时间线 ———————
4.15投递,4.15简历筛选,4.18笔试,4.21一面,4.22约二面,4.23二面,5.7三面,5.9hr面
——————————————————
- 面试官自我介绍,部门简单介绍
- 自我介绍
- 开始问项目(平台的设计、技术栈、目标用户),RPC框架,你做了哪些设计?
- 你用到了多线程,如何保证多线程的安全的?答:synchronized
- synchronized是如何工作的
- 开始吟唱锁升级机制
- 面试官:我不是问这个,它的底层是怎么实现的,比如一个线程来了,它怎么知道当前这个对象有没有上锁?上的什么锁?另一个线程来了又怎么知道这个对象是偏向锁的呢?
- 持有偏向锁的线程是怎么操作的?那另一个线程来了知道这个是偏向锁了,它会怎么做呢?
- 偏向锁什么时候会变为轻量级锁,谁来操作的?原先持有偏向锁的线程会怎么办?
- 你说轻量级锁是线程的并发度不高,交替运行获取锁的,那这个和重量级锁有什么区别呢?它们的目标不本来就是保证线程安全,交替使用资源对象的吗?
- 那么照你这个说法,轻量级锁会随着并发度的增加变为重量级锁,那么是不是肯定会存在一个临界条件?你知道这个临界条件吗?
- 了解分布式吗?(不了解,就没有问了
- 你自己设计一个消息队列要怎么设计?怎么保证可靠性?
- 还问了一点操作系统和计网,但忘了
- 堆排序,选择topK,手推时间复杂度,空间复杂度
- 最开始用的是基于乱序数组构建堆.......然后面试官一步步指引着发现这样构建堆是不合适的
- 面试官还举例了为什么要用插入式的构建堆,以及时间复杂度和空间复杂度的优势
- 算法题:数组中三个数相加为0(做出来了,但不是最优解......明明做过的题目,但忘记了😭
- 面试官详细介绍了部门的职责和面向用户(好感度拉满
————————————————————
全程一个半小时,差不多时间主要是在synchronized和堆排序上,不得不说,面的时候还是很慌的,这个synchronized和堆排序记过,但实在没有记得这么细,问的深一点就得慢慢推敲了...
面试官很友好,会基于实际工作状况指引,介绍部门业务和给建议都很实际,最后还给了二面机会,感觉非常幸运
————————————————————
#阿里云##Java##暑期实习##牛客解忧铺##面经#