项目八股:1、进程、线程、协程的区别2、linux中线程是怎么实现的,开销有多少3、用户态和内核态区别,什么时候会进入内核态4、对死锁的理解,怎么避免死锁5、覆盖和重载的区别6、对垃圾回收器的理解7、G1的region之间有区别吗,有哪些类型的region8、G1怎么调优使得应用程序的暂停不要超过20ms9、看过哪些源码10、谈一下hashmap的设计11、为什么>8变成红黑树,12、如果设置>8变成树,13、hashmap并发读写有问题吗,会产生什么问题14、jdk8怎么解决jdk7里的死循环问题15、hashmap需要并发读写该怎么设计16、hashmap中的初始容量和加载因子有什么含义17、放到hashmap中的对象有什么要求18、IOC和AOP是什么19、AOP有什么限制20、用AOP的过程中可能出现什么问题算法:lc530 二叉搜索树的最小绝对差