武汉小米Java后台开发三面面经
- 笔试
一过去就开始就给了一套卷子做。卷子的题目比较简单。因为没有怎么准备数据库相关知识,以至于后面的笔试和面试都吃了亏。
- 一面
当场改笔试卷子。
根据卷子问问题。为什么选择给某个字段建索引?如何建?
说说HashMap和ConcurrentHashMap 从JDK 1.7和JDK 1.8 分别来谈。(put、hash、扩容、size、底层数据结构)。你认为1.8比1.7有哪些优化,为什么要做这种优化?
讲一下线程池工作原理,结合源码来谈。
给定1/2/3/4/5五个数,已知现在有m = 12543。求用这五个数凑出大于m的最小值(数字不能重复,如:111111)。
已知有A、B两个增序数组,先将A、B合成一个新的增序数组C,该如何操作?
有线程A、线程B以及以下代码:
private boolean flag = true; //线程A: while(flag){ ... }
问:如何修改上述代码,让线程B结束线程A?
你觉得自己有哪些优势?
- 二面:
学历、实验室相关。
讲一下你做的最好的一个项目。
说说你的职业规划。
说Lamda表达式的优缺点。
说一下B+树和B-树。
结合OSI七层模型讲一下,一次http网络请求的全过程。
手写sql。
讲一下路由器和交换机的区别。
讲一下数据库ACID的特性。
- 三面:
问了下卓越班。什么时候可以过来实习?实验室现在在做什么?
mysql主从复制。
数据库四范式。
CentOS 和 Linux的关系。
职业规划。
--------------------
一个下午完成笔试+三轮面试。现在在等结果。感觉小米这边对数据库的要求挺高的。准备面试的小伙伴们可以在这方面多准备一下。