小米南京春招面经
小米南京一面面经
一面(45min)
1、具体讲讲你的项目,服务如何拆分。
2、**功能如何做的。
3、数据库表的设计,索引的优化。
4、Spring IoC和AOP的概念?AOP的设计模式?IoC和哪个设计模式比较像?(√)
5、事务的特性?(数据的事务,写代码的事务)(√)
6、MySQL的事务隔离级别?(√)
7、讲讲MVCC?(√)
8、数据库最左匹配原则的原理?(√)
9、用什么方法测试我们的sql是否用到索引?(explain语句)
10、乐观锁和悲观锁。都举个例子(√)
11、讲一下synchrinzed关键字怎么使用?(√)
算法:【LC110 验证平衡二叉树】
class Solution { public boolean isBalanced(TreeNode root) { if (root == null) { return true; } int[] res = getDepth(root); return res[0] == 1; } // 返回值结构[0或者1,depth] int[] getDepth(TreeNode node) { int[] res = new int[2]; if (node == null) { res[0] = 1; return res; } int[] left = getDepth(node.left); int[] right = getDepth(node.right); // 如果左右子树非平衡二叉树 或 左右子树高度之差超过1 if (left[0] == 0 || right[0] == 0 || Math.abs(left[1] - right[1]) > 1) { return res; } res[0] = 1; res[1] = Math.max(left[1], right[1]) + 1; return res; } }
当天通知一面通过啦~
再接再厉,二面冲冲冲!
==================== 更新 ====================
二面(51min)
1、从发起请求到浏览器展示页面的过程(√)
2、从DNS解析出来ip之后,怎么到服务器的?
3、Nginx的作用?Nginx可以做什么?(反向代理、负载均衡等等)
4、Spring Bean的生命周期(√)
5、Spring怎么处理Bean的循环依赖(√)
6、简述Java的发射机制(√)
7、怎样替换原始的String类?(破坏双亲委派机制)
8、HTTP1.1和HTTP2.0都有哪些改进?(√)
9、git rebase和git merge的区别?(分支树合并与否)
10、git提交记录可以合并吗?没有使用场景(可以,随便问的,不太重要的点)
11、git的过程?如何写入到index,如何推到远端(不太了解,会用)
12、简单介绍一下项目,架构,技术,数据怎么流传的
13、Mybatis和RPC重点介绍一下。
14、RPC怎么暴露服务,服务怎么调度的。
15、xx功能怎么实现,缓存热点数据可以怎么做?
算法:
1、【剑指 Offer 25. 合并两个排序的链表】
2、【LC106. 从中序与后序遍历序列构造二叉树】
反问
八股文和算法 整体上问的不难的,许愿一波offer~
==================== 更新 ====================
3.14 小米OC
#面经##面试题目##小米#