小米一二面面经 Java 已oc
测评完两个星期以后被捞起来的。不得不说,小米面试官非常nice,实力很强也很客气,好感度++!
本人非科班+比较菜,基础问的很多,很幸运没有被问到场景题,感谢面试官手下留情,哈哈哈!
一面 45min
首先是讲讲项目,项目和部门比较相关问的比较仔细。
Java基础
1、HashMap的底层原理,怎么实现扩容的?
2、怎么用线程池,线程池的参数?
3、阻塞队列?
4、如果让你实现线程池,你该怎么做?
5、NIO和BIO的区别?
6、讲讲NIO的用法和底层原理?
计算机网络
1、Http和Https的区别?
2、Https的流程?
3、Session、Cookie、token的区别和联系?
数据库
1、索引是什么,底层原理?
2、B+树和B树的区别,为什么要用B+树?
框架(框架准备的不是很好,回答的不是很完整)
1、Mybatis中$和#的区别?
2、Spring中BeanFactory和FactoryBean的区别?
3、Spring中IOC和AOP理解?
4、讲讲Spring中的事务?
算法
1、反转链表再相加
2、颜色分类,力扣75题
一面结束后,收到满意度调查,以为是凉了。结果晚上收到小米二面的电话,约到了下周一。
二面 45min 比较基础,没有问项目
java基础
1、HashMap的底层原理,讲讲怎么扩容的?
2、synchronized的用法和底层原理?
3、讲讲synchronized的锁升级?
4、ReentrantLock底层原理?
5、说说对AQS的理解,有多少说多少?
6、volitle的作用?为什么不能保证原子性?(这个为什么的问题当时不会)
计算机网络
1、三次握手,为什么需要三次握手
2、四次挥手,为什么需要四次挥手
3、socket是什么?
数据库
1、介绍一下知道的引擎?
2、什么是聚集索引,什么是非聚集索引?
3、什么是最左前缀原则?
4、ACID分别代表什么?
5、Redis在项目中怎么用的?
框架(就一个问题)
请求到Controller层经过的流程
算法
1、二分法第一个等于target的值,最后一个等于target的值
2、二分法求旋转数组位置