一面(电话面):
时间:4月17日晚19:00,时长40分钟。
先在伯乐系统里写了三道算法,1.编辑距离改编版;2.找出数组中唯一的重复数字;3.最大岛屿面积改编版(变成了八个方向)
然后就简单问了一些很基础的八股文,就不细讲了,更多的是聊一聊在校内的学习经历以及对自己以后的规划。
二面(视频面):
时间:4月21日下午16:00,时长50分钟。
1.自我介绍;
2.多线程的实现方式,线程池七个参数细节讲一讲,饱和策略都有哪些,核心线程数应该设置为什么样的数字;
3.讲一讲协程,ThreadLocal底层讲一讲,从弱引用的key引出了强软弱虚细节的问题,讲一讲finalized方法;
4.介绍一下垃圾回收的原理和垃圾回收器(说了CMS和G1,面试官还问了ZGC但是这个我没深入了解过);
5.介绍一下B+树,MySQL为什么要用B+树;
6.讲一讲堆排序,哪些场景会用到。
7.项目遇到的困难,以及如何解决的。上线之前有做过压测吗,能承受多大的并发量。如果要把项目拓展为分布式该如何设计架构。
8.Redis底层原理,数据结构,持久化,主从模式实现原理。
9.zookeeper集群选举机制,一致性算法。
10.介绍一下Spring和SpringBoot,解决了哪些问题,AOP实现原理(可惜源码没好好看,没说出来多少东西)。
面试官是部门leader,人很随和,全程就像聊天一样没有太大压力,面试体验非常棒。
反问环节问了一个比较知乎的问题:在阿里工作是一种怎样的体验?
面试官很耐心地从阿里的整体发展规划一步一步讲到了部门的工作流程(当时还觉得面试官能跟我说这么多估计自己二面稳了)
可惜呀,到最后还是挂了,下午5点面完,7点查进度就已经显示“已回绝”了。
感觉最大原因可能是项目太简单然后Redis底层和Spring源码没好好看,说的东西太少。
全部评论
(17) 回帖