看的也是小林 Coding
他提到的重点有:
- HashMap:put 过程、扩容机制、为什么初始容量是 2 的幂次、链表转红黑树的条件,这些几乎每次都会问,而且很容易被追问到细节。
- ConcurrentHashMap:JDK 1.7 的分段锁和 JDK 1.8 的 CAS + synchronized 方案的区别,是并发面试里的高频考点。
- ArrayList 的线程安全问题:为什么不安全、具体会出现哪些问题、有哪些替代方案,这个看起来简单但答起来很容易流于表面。
- equals 和 hashCode 的关系:这两个方法为什么要配套重写,放到 HashMap 和 HashSet 里会有什么影响,基础但经常被忽略。
先搞清楚ArrayList 和 HashMap 的底层原理