杭州端点Java面经
1、能讲一下HashMap吗,追问hashmap的容量为什么设置为2^n?
2、HashMap是线程不安全的,如果想要保证线程安全,需要怎么做?
3、ConcurrentHashMap是怎么保证线程安全的,底层时是使用什么手段加锁? -->如果要做并发度优化的话,你会怎么考虑?
4、讲一下ReentrantLock,condition和synchronized本身的等待队列有什么区别?
5、讲一下对象头中的MarkWord
6、锁升级的过程,各种锁的使用场景
7、对java并发包有了解吗
8、ReentrantLock的实现原理
9、线程的生命周期
10、为什么使用线程池去实现多线程?
11、线程池的核心参数,以及怎么运行的
12、ThreadLocal的使用场景和可能出现的问题
13、JVM垃圾回收有什么了解吗,讲一下CMS,标记清除算法的缺点?针对该问题CMS有做什么优化吗?
14、哪些可以作为GC Root对象?
15、可达性分析的过程中出现跨代引用怎么办?
16、了解G1垃圾回收器吗,它的垃圾回收策略
17、了解双亲委派模型吗,目的是什么?什么情况会打破这种模型
18、MySQL的索引结构
19、平常有做过什么sql优化吗,常见的调优手段?
20、场景题:对表中的手机号的前三位和后四位进行匹配,怎么做效率更高?
21、 MySQL怎么实现事务?
22、MySQL和redis怎么保证数据一致性?