From e4f41df207f678b386f488a34ee95c30c1698cc1 Mon Sep 17 00:00:00 2001 From: leyou240 Date: Thu, 4 Apr 2019 09:15:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=B6=E9=97=B4=E5=A4=8D?= =?UTF-8?q?=E6=9D=82=E5=BA=A6=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/这几道Java集合框架面试题几乎必问.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/这几道Java集合框架面试题几乎必问.md b/docs/java/这几道Java集合框架面试题几乎必问.md index 18d276c4..af094e46 100644 --- a/docs/java/这几道Java集合框架面试题几乎必问.md +++ b/docs/java/这几道Java集合框架面试题几乎必问.md @@ -250,7 +250,7 @@ static class Segment extends ReentrantLock implements Serializable { ### JDK1.8 (上面有示意图) -ConcurrentHashMap取消了Segment分段锁,采用CAS和synchronized来保证并发安全。数据结构跟HashMap1.8的结构类似,数组+链表/红黑二叉树。 +ConcurrentHashMap取消了Segment分段锁,采用CAS和synchronized来保证并发安全。数据结构跟HashMap1.8的结构类似,数组+链表/红黑二叉树。Java 8在链表长度超过一定阈值(8)时将链表(寻址时间复杂度为O(N))转换为红黑树(寻址时间复杂度为O(long(N))) synchronized只锁定当前链表或红黑二叉树的首节点,这样只要hash不冲突,就不会产生并发,效率又提升N倍。