From f949397008495cba66bf131b499e846a12ddee2c Mon Sep 17 00:00:00 2001 From: guide Date: Wed, 15 Sep 2021 20:23:47 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Update=20ConcurrentHashMap=E6=BA=90?= =?UTF-8?q?=E7=A0=81+=E5=BA=95=E5=B1=82=E6=95=B0=E6=8D=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E5=88=86=E6=9E=90.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...15\256\347\273\223\346\236\204\345\210\206\346\236\220.md" | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git "a/docs/java/collection/ConcurrentHashMap\346\272\220\347\240\201+\345\272\225\345\261\202\346\225\260\346\215\256\347\273\223\346\236\204\345\210\206\346\236\220.md" "b/docs/java/collection/ConcurrentHashMap\346\272\220\347\240\201+\345\272\225\345\261\202\346\225\260\346\215\256\347\273\223\346\236\204\345\210\206\346\236\220.md" index cb5ce8185a4..89f9d24e062 100644 --- "a/docs/java/collection/ConcurrentHashMap\346\272\220\347\240\201+\345\272\225\345\261\202\346\225\260\346\215\256\347\273\223\346\236\204\345\210\206\346\236\220.md" +++ "b/docs/java/collection/ConcurrentHashMap\346\272\220\347\240\201+\345\272\225\345\261\202\346\225\260\346\215\256\347\273\223\346\236\204\345\210\206\346\236\220.md" @@ -6,9 +6,11 @@ ### 1. 存储结构 +> 下图存在一个笔误 Segmeng -> Segment + ![Java 7 ConcurrentHashMap 存储结构](./images/image-20200405151029416.png) -Java 7 中 ConcurrentHashMap 的存储结构如上图,ConcurrnetHashMap 由很多个 Segment 组合,而每一个 Segment 是一个类似于 HashMap 的结构,所以每一个 HashMap 的内部可以进行扩容。但是 Segment 的个数一旦**初始化就不能改变**,默认 Segment 的个数是 16 个,你也可以认为 ConcurrentHashMap 默认支持最多 16 个线程并发。 +Java 7 中 `ConcurrentHashMap` 的存储结构如上图,`ConcurrnetHashMap` 由很多个 `Segment` 组合,而每一个 `Segment` 是一个类似于 HashMap 的结构,所以每一个 `HashMap` 的内部可以进行扩容。但是 `Segment` 的个数一旦**初始化就不能改变**,默认 `Segment` 的个数是 16 个,你也可以认为 `ConcurrentHashMap` 默认支持最多 16 个线程并发。 ### 2. 初始化 From e4a4e1c300d5aabd14b90dec7d36f4cce2f2a281 Mon Sep 17 00:00:00 2001 From: guide Date: Wed, 15 Sep 2021 20:26:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?Update=20=E6=9C=80=E9=87=8D=E8=A6=81?= =?UTF-8?q?=E7=9A=84JVM=E5=8F=82=E6=95=B0=E6=8C=87=E5=8D=97.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2\204JVM\345\217\202\346\225\260\346\214\207\345\215\227.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/docs/java/jvm/\346\234\200\351\207\215\350\246\201\347\232\204JVM\345\217\202\346\225\260\346\214\207\345\215\227.md" "b/docs/java/jvm/\346\234\200\351\207\215\350\246\201\347\232\204JVM\345\217\202\346\225\260\346\214\207\345\215\227.md" index 90987dd7481..aca41ceac72 100644 --- "a/docs/java/jvm/\346\234\200\351\207\215\350\246\201\347\232\204JVM\345\217\202\346\225\260\346\214\207\345\215\227.md" +++ "b/docs/java/jvm/\346\234\200\351\207\215\350\246\201\347\232\204JVM\345\217\202\346\225\260\346\214\207\345\215\227.md" @@ -26,7 +26,7 @@ -Xms2G -Xmx5G ``` -### 2.2.显式新生代内存(Young Ceneration) +### 2.2.显式新生代内存(Young Generation) 根据[Oracle官方文档](https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/sizing.html),在堆总可用内存配置完成之后,第二大影响因素是为 `Young Generation` 在堆内存所占的比例。默认情况下,YG 的最小大小为 1310 *MB*,最大大小为*无限制*。