小米后台开发面经
一面:
1、线程池的底层怎么实现的?
2、Lock的底层怎么实现的?源码怎么写的?
3、sychronized的底层实现?
4、sychronized修饰静态方法和修饰普通方法有什么区别?
5、集合类中map的底层实现?插入键值对、hash冲突等方面说明(这一步画图解释)
6、手撕代码:旋转数组的某个元素查找。
我写了一个On的复杂度,面试官说还可以到logn。
7、介绍项目做的一些细节内容。
8、消息队列了解吗?
9、kafka的实现原理?
10、mysql的索引?
11、B树、B+树、B-树的区别?
12、线程有几个状态?分别是什么?
二面:
1、手撕代码:求一棵树的高度;
2、反射的原理?
3、ClassLoader和Class.forName()这两个有什么区别?
4、Springmvc框架流程?
5、Spring容器的加载顺序?
6、@Resource 和 @Autowired 区别?分别用在什么场景?
7、数据库索引:聚集索引和非聚集索引的区别?
8、介绍一些项目的细节内容,做了哪些模块、什么业务?
我已经给各位大佬做炮灰了。
祝大家都能拿到满意的offer~
#面经##小米##Java工程师##秋招#