diff --git a/docs/java/collection/concurrent-hash-map-source-code.md b/docs/java/collection/concurrent-hash-map-source-code.md index 74e5faac..015077ca 100644 --- a/docs/java/collection/concurrent-hash-map-source-code.md +++ b/docs/java/collection/concurrent-hash-map-source-code.md @@ -16,7 +16,7 @@ tag: > 下图存在两个笔误 : Segmeng -> Segment ; HashEntity -> HashEntry - + Java 7 中 `ConcurrentHashMap` 的存储结构如上图,`ConcurrnetHashMap` 由很多个 `Segment` 组合,而每一个 `Segment` 是一个类似于 HashMap 的结构,所以每一个 `HashMap` 的内部可以进行扩容。但是 `Segment` 的个数一旦**初始化就不能改变**,默认 `Segment` 的个数是 16 个,你也可以认为 `ConcurrentHashMap` 默认支持最多 16 个线程并发。 diff --git a/docs/java/collection/images/ad28e3ba-e419-4724-869c-73879e604da1.png b/docs/java/collection/images/ad28e3ba-e419-4724-869c-73879e604da1.png deleted file mode 100755 index 8d802d64..00000000 Binary files a/docs/java/collection/images/ad28e3ba-e419-4724-869c-73879e604da1.png and /dev/null differ diff --git a/docs/java/collection/images/java-collection-hierarchy.png b/docs/java/collection/images/java-collection-hierarchy.png index 6cc15baa..346b0203 100755 Binary files a/docs/java/collection/images/java-collection-hierarchy.png and b/docs/java/collection/images/java-collection-hierarchy.png differ diff --git a/docs/java/collection/images/image-20200405151029416.png b/docs/java/collection/images/java7_concurrenthashmap.png similarity index 100% rename from docs/java/collection/images/image-20200405151029416.png rename to docs/java/collection/images/java7_concurrenthashmap.png diff --git a/docs/java/collection/images/jdk1.8之前的内部结构-HashMap.png b/docs/java/collection/images/jdk1.7_hashmap.png similarity index 100% rename from docs/java/collection/images/jdk1.8之前的内部结构-HashMap.png rename to docs/java/collection/images/jdk1.7_hashmap.png diff --git a/docs/java/collection/images/jdk1.8之后的内部结构-HashMap.png b/docs/java/collection/images/jdk1.8_hashmap.png similarity index 100% rename from docs/java/collection/images/jdk1.8之后的内部结构-HashMap.png rename to docs/java/collection/images/jdk1.8_hashmap.png diff --git a/docs/java/collection/images/TreeMap继承结构.png b/docs/java/collection/images/treemap_hierarchy.png similarity index 100% rename from docs/java/collection/images/TreeMap继承结构.png rename to docs/java/collection/images/treemap_hierarchy.png diff --git a/docs/java/collection/java-collection-questions-02.md b/docs/java/collection/java-collection-questions-02.md index 46b08903..5508d641 100644 --- a/docs/java/collection/java-collection-questions-02.md +++ b/docs/java/collection/java-collection-questions-02.md @@ -67,7 +67,7 @@ tag: `TreeMap` 和`HashMap` 都继承自`AbstractMap` ,但是需要注意的是`TreeMap`它还实现了`NavigableMap`接口和`SortedMap` 接口。 - + 实现 `NavigableMap` 接口让 `TreeMap` 有了对集合内元素的搜索的能力。 @@ -213,13 +213,13 @@ static int hash(int h) { 所谓 **“拉链法”** 就是:将链表和数组相结合。也就是说创建一个链表数组,数组中每一格就是一个链表。若遇到哈希冲突,则将冲突的值加到链表中即可。 - + #### JDK1.8 之后 相比于之前的版本, JDK1.8 之后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树)时,将链表转化为红黑树,以减少搜索时间。 - + > TreeMap、TreeSet 以及 JDK1.8 之后的 HashMap 底层都用到了红黑树。红黑树就是为了解决二叉查找树的缺陷,因为二叉查找树在某些情况下会退化成一个线性结构。 @@ -258,9 +258,7 @@ static int hash(int h) { **JDK1.7 的 ConcurrentHashMap:** - - -
https://www.cnblogs.com/chengxiao/p/6842045.html>
+ **JDK1.8 的 ConcurrentHashMap:**