- 博客(3)
- 收藏
- 关注
原创 ConcurrentHashMap的实现原理
HashMap不是线程安全的,在多线程下会出现错误。ConcurrentHashMap是HashMap的线程安全版本。JDK1.7 采用分段锁机制实现其最主要的概念是Segment Segment本身就相当于一个HashMap对象。同HashMap一样,Segment包含一个HashEntry数组,数组中的每一个HashEntry既是一个键值对,也是一个链表的头节点。 单一的Segment结构
2017-11-22 20:59:32 304
原创 高并发下的HashMap有哪些问题?
HashMap在扩容时要进行resize操作,扩容分为两步: 1、申请一个新数组,长度是原来的2倍 2、遍历原数组,将原始重新hash进新数组,hash公式:index=HashCode(Key) & (length-1)如果HashMap到达临界容量需要扩容,两个线程同时进行resize操作,同时开辟两块空间,线程挂起时机不当时,rehash会产生环路。当然,还会发生,一个线程迭代时,另一个线
2017-11-22 12:06:09 2728 1
原创 Java HashMap的实现原理
HashMapHashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap数组每一个元素的初始值都是Null。
2017-11-21 22:08:00 208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人