小米 研发-Java base北京 一面 10.10 50min1.社区项目里面主要负责什么?2.用redis做了什么?redis是数据库吗?redis的实现原理?3.介绍一下ES搜索引擎?ES的优势是什么,以及它是怎么实现的?倒排索引?4.类加载机制?双亲委派机制?双亲委派机制的好处?类加载器?类加载过程?验证的目的?什么样的代码会危害JVM安全?5.Java的内存模型?程序计数器?垃圾回收?垃圾回收算法?6.为什么存在内存泄漏?7.如何判断对象死亡?哪些对象可以作为GC ROOT?8.如何排查内存泄漏?内存溢出?9.哪些情况会出现内存溢出?10.有哪些线程池?线程池里面的相关参数?11.死锁的产生条件?如何避免死锁?12.手撕:三数之和?二面 10.13 40min小米面经-二面 40min1.实习经历?介绍实习项目?2.介绍基本数据类型?3.解释型语言和编译型语言的区别?4.堆和栈的主要区别?5.局部变量放到哪个区域?6.malloc 分配空间是分配到哪个区域?7.static 修饰的变量存放在哪个区域?8.Hashmap 和 Hashtable 的区别?9.进程和线程的区别?10.介绍垃圾回收机制?软引用?弱引用?虚引用?11.垃圾回收算法?12.手撕:旋转链表?10.25 oc