自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yang's space

一只小白

  • 博客(3)
  • 收藏
  • 关注

原创 ConcurrentHashMap的实现原理

HashMap不是线程安全的,在多线程下会出现错误。ConcurrentHashMap是HashMap的线程安全版本。JDK1.7 采用分段锁机制实现其最主要的概念是Segment Segment本身就相当于一个HashMap对象。同HashMap一样,Segment包含一个HashEntry数组,数组中的每一个HashEntry既是一个键值对,也是一个链表的头节点。 单一的Segment结构

2017-11-22 20:59:32 292

原创 高并发下的HashMap有哪些问题?

HashMap在扩容时要进行resize操作,扩容分为两步: 1、申请一个新数组,长度是原来的2倍 2、遍历原数组,将原始重新hash进新数组,hash公式:index=HashCode(Key) & (length-1)如果HashMap到达临界容量需要扩容,两个线程同时进行resize操作,同时开辟两块空间,线程挂起时机不当时,rehash会产生环路。当然,还会发生,一个线程迭代时,另一个线

2017-11-22 12:06:09 2710 1

原创 Java HashMap的实现原理

HashMap HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap数组每一个元素的初始值都是Null。

2017-11-21 22:08:00 199

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除