摘要: HashMap不是线程安全的。在并发插入元素的时候,有可能出现环链表,让下一次读操作出现死循环。避免HashMap的线程安全问题有很多方法,比如改用HashTable或Collections.synchronizedMap. (Hashtable是对hashmap中的方法加上了Synchronize 阅读全文
posted @ 2018-05-26 15:05 zeroingToOne 阅读(718) 评论(0) 推荐(0) 编辑
摘要: 一、HashMap介绍 1. 定义HashMap实现了Map接口,继承AbstractMap类。其中Map接口定义了键映射到值的规则,而AbstractMap类提供 Map 接口的骨干实现,以最大限度地减少实现此接口所需的工作,其实AbstractMap类已经实现了Map 2. 成员变量 table 阅读全文
posted @ 2018-05-26 15:00 zeroingToOne 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 在分析hashmap高并发场景之前,我们要先搞清楚ReHash这个概念。ReHash是HashMap在扩容时的一个步骤。HashMap的容量是有限的。当经过多次元素插入,使得HashMap达到一定饱和度时,Key映射位置发生冲突的几率会逐渐提高。这时候,HashMap需要扩展它的长度,也就是进行Re 阅读全文
posted @ 2018-05-26 15:00 zeroingToOne 阅读(296) 评论(0) 推荐(0) 编辑