小米
北京市 · 互联网 · 10000人以上
公司实力雄厚
战略融资
A级纳税人
独角兽企业
瞪羚企业
经营产品·111项目信息·10

面试经验

“有难度”
“体验一般”
2712 条面经
面试官hr有收获难度体验很好2轮算法技术看中专业技能体验一般流程面试有难度经验二面笔试面试官nice自我介绍简历一面薪资
8394
Java
确定通过确定通过
一、项目     3.自己表明想用白板介绍    1.Mysql的原理介绍一下 1.3.1、如果用悲观锁,select *** for update,则为110 1.3.2、如果用乐观锁,需要判断影响行数并重试(面试官强调,金融行业不允许重试),回答101。 因为只会有一个线程修改成功,面试官表示正确。        2.1、三大要素:有序性、原子性、可见性         2.2、Synchronized和volatile一把梭        2.3、重点表明单机版用JVM锁,分布式版用redis分布式锁(本来想狂扯一把redis分布式锁,面试官听到分布式锁就让我打住了)        2.4、本来还想扯一下AQS,准备疯狂输出面试官,也没给机会让说         3.1、表示之前遇到过同事把表给锁死了。        3.2、首先阐明发生死锁的几个必要条件        3.3、再表明好像有个show processlist,还有个information schema可以查看锁。        3.4、针对占有锁的进程/线程,直接kill掉。因为它们已经发生死锁了,没法优化,只能先破坏不可剥夺条件。    4.HashMap八股 主要讲了HashMap去put时,如果扩容,会有transfer的过程,1.7的情况下会有死循环。 而且没有加锁控制,然后面试官就没让说了 (这块有点短板,因为1.7 1.8,CHM的1.7 1.8内容太多,记不住)5.考题    5.1、Integer整数,为什么(1000==1000)返回false,而(100==100)返回true 直接回答写JDK代码的设计人员考虑到程序的运行效率,缓存了-12X-12X的数据。再扯到Redis也有类似机制,缓存了10000个RedisObject, 本来还想延伸,面试官让我打住。    6.1、讲了下Java中堆主要是存放对象的,栈有虚拟机栈等。描述了两者的区别    7.1、这块其实不是很熟,讲了下注解的几个要点:@Target @Document    7.2、表示是否可以以某个具体的注解来讲,比如@Autowired,面试官表示可以 (其实还想以AOP+自定义注解+Redis Lua来实现分布式限流来讲的)    7.3、开始讲Spring的getBean(),createBean()创建实例,然后populateBean()填充属性的时候,会判断是否实现了inxxxxBeanPostProcessor, 会去自动注入相关属性,面试官让就此打住    8.1、讲了下三级缓存是拿来干嘛的,解决哪种循环依赖的。    8.2、提前暴露单实例,三级是Map,假装思考一下,ObjectFactory是用的get还是getObject()方法 因为前面说得太流畅了,要假装回忆一下。。。。。 8.2、讲了下getBean()的流程,具体以A依赖B,B依赖A,且是setter依赖,然后什么时候三级升为二级,然后又放到一级 还没讲完,面试官表示可以了三、算法题7.算法题    7.1、删除链表中重复的结点(面试官要求限时20分钟)...查看更多
包含11个问题,4个回答
Q:    1.简单自我介绍
2 年前 发布
加载中
看准网小米小米面试经验小米null面试经验