2020年6月19日大约 11 分钟
2020年6月19日大约 2 分钟
2020年6月19日大约 2 分钟
HashMap 是线程不安全的。
为了使用线程安全的数据结构,多线程条件下,可使用 Collections.synchronizedMap
方法构造出一个同步Map,或者直接使用线程安全的 ConcurrentHashMap
。
2018年9月12日大约 7 分钟
作为一名 java 开发,基本上最常用的数据结构就是 HashMap 和 List,jdk 的 HashMap 设计还是非常值得深入学习的。
无论是在面试还是工作中,知道原理都对会我们有很大的帮助。
本篇的内容较长,建议先收藏,再细细品味。
不同于网上简单的源码分析,更多的是实现背后的设计思想。
涉及的内容比较广泛,从统计学中的泊松分布,到计算机基础的位运算,经典的红黑树、链表、数组等数据结构,也谈到了 Hash 函数的相关介绍,文末也引入了美团对于 HashMap 的源码分析,所以整体深度和广度都比较大。
思维导图如下:
2018年9月12日大约 24 分钟