面试总结
Java方面
1.HashMap和HashTable的区别
通过HashMap和HashTable的源码去分析
2.Java垃圾回收机制
理解JVM,内存划分———方法区、内存栈、【虚拟机栈、本地方法栈、程序计数器(线程私有)】。
理解回收算法:标记清除算法、可达性分析算法、标记整理算法、复制算法、分代算法
3.类加载机制
涉及热修复相关问题
4.线程和线程池、并发、锁等一系列问题
如何自定义一个线程池?
5.弱引用、软引用区别
6.int、Integer区别
主要考值传递和引用传递问题
7.手写设计模式
1.单例模式
2.生产者/消费者模式
3.观察者模式
4.适配器模式
5.策略模式
6.建造者模式+工厂模式
7.MVC、MVP、MVVM区别
8.数据结构
1.平衡二叉树、二叉查找数、红黑树
2.HashMap、LinkedHashMap、ConcurrentHashMap,在用法和原理上有什么差异,很多公司会考HashMap原理,通过它做一些扩展,比如中国13亿人口年龄的排序问题,年龄对应桶的个数,年龄相同和hash相同问题类似。
3.ArrayList和LinkedList的区别
4..Set原理,这个和HashMap考得有点类似,考hash算法相关,被问到过常用hash算法。HashSet内部用到了HashMap