小米二面吊打凉经
小米一面(20 min)
常规问题,大家肯定都懂,就分析个常见的源码之类的
-
自我介绍
-
HashMap 1.8 原理
-
MySQL(索引结构、事务深入解析,范围查询相关问题)
-
JVM 内存分区
-
JVM 类加载
-
锁膨胀
-
可冲入锁原理
-
重量锁原理
-
手写单例模式,双重检验锁
-
Spring 原理,知道多少说多少
-
Mybaties 原理(不懂)
小米二面(60 min)
过了两周,作为一个合格的备胎,被小米捞起来吊打了,但没被阿里吊打得那么难受了。。。
-
自我介绍一下
-
(上次阿里 “熟悉” 踩雷,这次不敢了,我用“了解”总好了吧!)....平时我学习也有深入源码去分析,我对 Java 并发了解多一点点(结果这句又 TM 劝退警告)
-
-
Java 多个循环想要 break ,如何一次性打破?
-
emmm,沉默 5 秒,抛异常?
-
-
不对,怎么能是抛异常,你再回去试试吧!break 的用法
-
哦。。。
-
-
Map 容器了解哪一些
-
balabala
-
-
停,除了这些你还懂哪些?
-
LinkedHashMap。。。?
-
-
你说说它的底层原理
-
嗯,面试官,这个的原理我只了解过一点点,balabala
-
-
你说是啥顺序?只有 LRU 么?
-
emmm,沉默 5 秒,是吧。。。
-
-
举个例子,LinkedHashMap 插入 key,a,b,最后输出是啥?
-
b a ?
-
-
理由是啥?
-
LRU。。。
-
-
你再回去试试吧!
-
。。。
-
-
哪一些可以作为锁对象?Integer 可以作为锁对象么?
-
可以吧,因为是对象啊,重量锁锁的不就是对象么?
-
-
你再回去试试吧!
-
Lambda 表达式的实现原理?
-
这个没了解过,只知道是语法糖
-
-
那,匿名内部类实现线程的时候,底层是怎么走的?
-
语法糖 balaba
-
-
函数式编程的理解?Java 8 如何实现的函数式编程?
-
balabala
-
-
Java 8 中的接口和抽象类的区别?
-
balaba
-
-
JVM 引入的锁优化技术有哪些
-
锁膨胀、锁消除
-
-
还有呢?
-
逃逸分析,同步省略?
-
-
那不还是锁消除么
-
嗯。。。
-
-
你再回去看看吧!
-
嗯。。。
-
-
ReentrantLock 和 synchronized 底层的实现原理
-
balabala
-
-
ReentrantReadWriteLock 了解么?
-
了解一点点。。。
-
-
ReentrantReadWriteLock 底层实现的原理?
-
(我特么只说一点点啊,又来原理)是这样的,只了解过一点点,就是 balabal
-
-
ReentrantReadWriteLock 同个线程是否可以重复获取读写锁,分类讨论
-
(懵逼,按照可重入性理解吧,但也不知道读锁和写锁哪个可重复啊)balabala
-
-
是这样的么,你再回去看看吧!
-
嗯。。。
-
-
AQS 原理分析一下,底层几个队列?
-
balaba,有一个 FIFO 队列
-
-
就一个?就绪和阻塞放一个队列么?线程就绪放哪个,就绪出来的线程能直接运行么?
-
哦,还有一个同步队列。。。运行的话 balabala。。。
-
-
你确定?你再回去看看吧!
-
哦。。。
-
-
写个题吧,这样,既然你了解 ReentrantLock ,用它写两个线程交替打印 1 - 10
-
(第一次撕并发题,也不能切到本地 IDE,手一直抖,抖着写了 20 分钟。。。)
-
-
2 Thousand Later
-
我看看你写的如何啊
-
(妈耶,一运行,满屏的 bug,20+ bug。。。)
-
-
emm,不如说说你的思路吧
-
balabala,condition、共用一个 reentrantlcok 之类的。。。
-
-
三个线程怎么做?
-
再加一个 condition 和类?
-
-
嗯。。。好吧,今天差不多了,你还有啥能力是没体现的么?
-
MySQL、设计模式、JVM、计算机网络、HTTP、操作系统、算法等都没问呢?
-
-
这些不应该一面就问了么?
-
哦。。那面试官你对我有何建议?
-
-
深度还行,但广度太差了,看问题要全面,你回去多看看吧
-
好的,谢谢面试官
-
总结
学习的时候,虽然常规的准备是首要,同时也要注意不常规的知识,一般到二面、三面就高能了,但某AT、某条应该是例外,直接开局高能
这次还是吊打,但没有被阿里的面试官那样按在地上疯狂摩擦了。知识点比较常规,不过,考察点还是有点不常规。总的来说,小米的面试挺看重广度。然后这些面试官总的来说很看重你的自我介绍,自我介绍的时候要注意一点
第一次手撕并发题,LC 上之前也有并发题,写过,但好久没写了,之前一直用 AQS 组件实现,ReentrantLock 的确好久没写,招架不住了。。。还是代码功底,所以平时复习的时候,自己脑补个小 Demo 试试