Skip to content

Commit 08ae0f4

Browse files
committed
feat: 增加HashMap的讲解和资料
1 parent 7e1f27d commit 08ae0f4

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

6. 基础能力/集合/HashMap.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# HashMap
2+
3+
## 前言
4+
5+
HashMap并不简单,涉及的知识遍及线程、Java内存模型、哈希计算、链表结构、二进制操作等等,所以一个HashMap的掌握程度也能看出开发的技术功能。
6+
7+
那怎么学?我建议是细节吃透+发散思维。
8+
9+
1. 咬死细节,多问几个为什么。
10+
跟着下面几篇博文,先对HashMap的整体流程有所熟悉,再死扣设计细节。比如为什么要数组+链表这个结构?换成为什么要二次哈希?为什么String的hash算法使用固定常量31?为什么JDK1.8后使用红黑树代替过长的单链表?……
11+
12+
2. 发散思维,多想还有什么用途。
13+
不满足于掌握HashMap,而是要吃透知识点,那,既然涉及到哈希计算,我们平时常用的哈希算法有哪些?又有哪些应用?既然有多线程问题,那HashTable和CurrentHashMap是怎么解决的?有什么不同?既然有红黑树,红黑树在哪些地方还有应用?……
14+
15+
这些问题,相信阅读完下面几篇优秀的博文,你就会得到答案。
16+
17+
## 博文
18+
19+
- [图解HashMap原理](https://www.jianshu.com/p/dde9b12343c1)
20+
> 就着配图,HashMap的源码读起来非常轻松,本文基于JDK1.7源码,非常细致地剥完了HashMap的原理。
21+
22+
- [HashMap深度分析](https://www.jianshu.com/p/8b372f3a195d)
23+
> 从面试的角度切入,可以作为细节点的补充。

0 commit comments

Comments
 (0)