原理
为什么用HashMap
ArrayList
LinkedList
HashMap数据结构
字典比喻
Java世界的结构
面试点
J7
- 默认容量
- <mark>容量为什么要求是2的n次幂</mark>
- 如何扩容
- <mark>为什么线程不安全 - (环形链表 - 死锁) - coolshell</mark>
https://blog.csdn.net/LawssssCat/article/details/103238632 - J7的解决方法? - hashTable / ConcurrentHashMap
J8
- 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
源码 - 分析 & 注解 - 翻译
好的
- 《Java:手把手带你源码分析 HashMap 1.7》(<mark>超多图片</mark>)https://blog.csdn.net/carson_ho/article/details/79373026
我的
- 《HashMap - 源码分析 + 注释翻译 - Java1.8版本》https://blog.csdn.net/LawssssCat/article/details/103214258
- 《HashMap - 源码分析 + 注释翻译 - Java1.7版本 》 https://blog.csdn.net/LawssssCat/article/details/103211583