面试公司:小米
面试岗位:Java开发
面试问题:
1、自我介绍
我重点的讲了一下自己对于JVM和JUC都比较的了解。
2、讲一讲垃圾回收的判断算法
3、讲一下垃圾回收算法
4、你都知道哪些垃圾回收器?
5、讲一个你熟悉的垃圾回收器
我讲了CMS的原理、特点和优势,以及它和G1的区别
后来面试官说看我的基础还行,就问的再深入一些
6、hashmap的结构是怎样的?
7、hashmap如何保证线程安全
我一共说了三种
8、springMVC的运行原理是什么?从一个请求进入到返回的过程
我说了dispatcherServlet->处理器映射器->处理器拦截器->model那一套,但是,面试官说不是这个,之后,面试官给我详细的讲了filter->dispatcherServlet->controller这个过程。
面试官真的很有耐心呀!
9、讲一下IOC和AOP
10、@transantial的传播行为有哪些?
我只说了两个,面试官说有7个,之后他给我介绍了一下
之后,我们就谈到了项目
11、介绍一下项目
12.如,只有一个redis服务器,redis服务器挂了如何才能保证服务器正常运行和数据一致性?
刚开始我说了redis持久化,可是在redis恢复的过程中,以及恢复后如何正常运行和保持一致性,这个我没想出来,因为去我觉得单个redis服务器并不能够保证这样的情况,至少应该有主从同步两台redis服务器,最好是哨兵模式。
13.算法
判断链表有环
面试感受:
总而言之,面试的整个过程,面试官都非常的有耐心,中间还给我讲解了一些我理解有错的知识点。



