[docs fix]图片格式规范

This commit is contained in:
guide 2022-06-30 15:47:15 +08:00
parent 510273aec8
commit 3a0e1ea377
8 changed files with 5 additions and 7 deletions

View File

@ -16,7 +16,7 @@ tag:
> 下图存在两个笔误 : Segmeng -> Segment ; HashEntity -> HashEntry
![Java 7 ConcurrentHashMap 存储结构](./images/image-20200405151029416.png)
![Java 7 ConcurrentHashMap 存储结构](./images/java7_concurrenthashmap.png)
Java 7 中 `ConcurrentHashMap` 的存储结构如上图,`ConcurrnetHashMap` 由很多个 `Segment` 组合,而每一个 `Segment` 是一个类似于 HashMap 的结构,所以每一个 `HashMap` 的内部可以进行扩容。但是 `Segment` 的个数一旦**初始化就不能改变**,默认 `Segment` 的个数是 16 个,你也可以认为 `ConcurrentHashMap` 默认支持最多 16 个线程并发。

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -67,7 +67,7 @@ tag:
`TreeMap` 和`HashMap` 都继承自`AbstractMap` ,但是需要注意的是`TreeMap`它还实现了`NavigableMap`接口和`SortedMap` 接口。
![](./images/TreeMap继承结构.png)
![](./images/treemap_hierarchy.png)
实现 `NavigableMap` 接口让 `TreeMap` 有了对集合内元素的搜索的能力。
@ -213,13 +213,13 @@ static int hash(int h) {
所谓 **“拉链法”** 就是:将链表和数组相结合。也就是说创建一个链表数组,数组中每一格就是一个链表。若遇到哈希冲突,则将冲突的值加到链表中即可。
![jdk1.8之前的内部结构-HashMap](./images/jdk1.8之前的内部结构-HashMap.png)
![jdk1.8 之前的内部结构-HashMap](./images/jdk1.7_hashmap.png)
#### JDK1.8 之后
相比于之前的版本, JDK1.8 之后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8将链表转换成红黑树前会判断如果当前数组的长度小于 64那么会选择先进行数组扩容而不是转换为红黑树将链表转化为红黑树以减少搜索时间。
![jdk1.8之后的内部结构-HashMap](./images/jdk1.8之后的内部结构-HashMap.png)
![jdk1.8之后的内部结构-HashMap](./images/jdk1.8_hashmap.png)
> TreeMap、TreeSet 以及 JDK1.8 之后的 HashMap 底层都用到了红黑树。红黑树就是为了解决二叉查找树的缺陷,因为二叉查找树在某些情况下会退化成一个线性结构。
@ -258,9 +258,7 @@ static int hash(int h) {
**JDK1.7 的 ConcurrentHashMap**
![JDK1.7的ConcurrentHashMap](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/ConcurrentHashMap分段锁.jpg)
<p style="text-align:right;font-size:13px;color:gray">https://www.cnblogs.com/chengxiao/p/6842045.html></p>
![Java 7 ConcurrentHashMap 存储结构](./images/java7_concurrenthashmap.png)
**JDK1.8 的 ConcurrentHashMap**