原理

为什么用HashMap

ArrayList
LinkedList

HashMap数据结构

字典比喻

Java世界的结构



面试点

J7

  1. 默认容量
  2. <mark>容量为什么要求是2的n次幂</mark>
  3. 如何扩容
  4. <mark>为什么线程不安全 - (环形链表 - 死锁) - coolshell</mark>
    https://blog.csdn.net/LawssssCat/article/details/103238632
  5. J7的解决方法? - hashTable / ConcurrentHashMap

J8

  1. J8做了那些改进,为什么?

《重要知识点》
<mark>初始容量</mark>
<mark>负载因子</mark>
<mark>哈希算法</mark>
<mark>扩容</mark>
<mark>低效</mark>
<mark>线程不安全</mark>

《J8 HashMap的改进》
<mark>数组+链表/红黑树</mark>
<mark>扩容时插入顺序的改进</mark>
函数方法
forEach
compute系列
Map的新api
merge
replace



源码 - 分析 & 注解 - 翻译

好的

我的