Skip to content

Commit e18df70

Browse files
committed
[docs update]完善jvm部分描述+统一手绘图片样式
1 parent 44e1db0 commit e18df70

36 files changed

+74
-55
lines changed

docs/java/jvm/jdk-monitoring-and-troubleshooting-tools.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
---
2+
title: JDK 监控和故障处理工具总结
23
category: Java
34
tag:
45
- JVM
56
---
67

7-
# JDK 监控和故障处理工具总结
8-
98
## JDK 命令行工具
109

1110
这些命令在 JDK 安装目录下的 bin 目录下:

docs/java/jvm/jvm-garbage-collection.md

Lines changed: 63 additions & 29 deletions
Large diffs are not rendered by default.

docs/java/jvm/memory-area.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,17 @@ tag:
2121

2222
## 运行时数据区域
2323

24-
Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK 1.8 和之前的版本略有不同,下面会介绍到。
24+
Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。
2525

26-
**JDK 1.8 之前**
26+
JDK 1.8 和之前的版本略有不同,我们这里以 JDK 1.7 和 JDK 1.8 这两个版本为例介绍。
2727

28-
![Java 运行时数据区域(JDK1.8 之前)](https://oss.javaguide.cn/github/javaguide/java/jvm/java-runtime-data-areas-jdk1.7.png)
28+
**JDK 1.7**
2929

30-
**JDK 1.8 之后**
30+
![Java 运行时数据区域(JDK1.7)](https://oss.javaguide.cn/github/javaguide/java/jvm/java-runtime-data-areas-jdk1.7.png)
3131

32-
![Java 运行时数据区域(JDK1.8 之后)](https://oss.javaguide.cn/github/javaguide/java/jvm/java-runtime-data-areas-jdk1.8.png)
32+
**JDK 1.8**
33+
34+
![Java 运行时数据区域(JDK1.8 )](https://oss.javaguide.cn/github/javaguide/java/jvm/java-runtime-data-areas-jdk1.8.png)
3335

3436
**线程私有的:**
3537

@@ -91,7 +93,7 @@ Java 方法有两种返回方式,一种是 return 语句正常返回,一种
9193
- **`StackOverFlowError`** 若栈的内存大小不允许动态扩展,那么当线程请求栈的深度超过当前 Java 虚拟机栈的最大深度的时候,就抛出 `StackOverFlowError` 错误。
9294
- **`OutOfMemoryError`** 如果栈的内存大小可以动态扩展, 如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出`OutOfMemoryError`异常。
9395

94-
![](./pictures/memory-area/《深入理解虚拟机》第三版的第2章-虚拟机栈.png)
96+
![](https://oss.javaguide.cn/github/javaguide/java/jvm/%E3%80%8A%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E8%99%9A%E6%8B%9F%E6%9C%BA%E3%80%8B%E7%AC%AC%E4%B8%89%E7%89%88%E7%9A%84%E7%AC%AC2%E7%AB%A0-%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%A0%88.png)
9597

9698
### 本地方法栈
9799

@@ -117,9 +119,9 @@ Java 堆是垃圾收集器管理的主要区域,因此也被称作 **GC 堆(
117119

118120
下图所示的 Eden 区、两个 Survivor 区 S0 和 S1 都属于新生代,中间一层属于老年代,最下面一层属于永久代。
119121

120-
![hotspot-heap-structure](./pictures/hotspot-heap-structure.png)
122+
![堆内存结构](https://oss.javaguide.cn/github/javaguide/java/jvm/hotspot-heap-structure.png)
121123

122-
**JDK 8 版本之后 PermGen(永久) 已被 Metaspace(元空间) 取代,元空间使用的是本地内存。** (我会在方法区这部分内容详细介绍到)。
124+
**JDK 8 版本之后 PermGen(永久代) 已被 Metaspace(元空间) 取代,元空间使用的是本地内存。** (我会在方法区这部分内容详细介绍到)。
123125

124126
大部分情况,对象都会首先在 Eden 区域分配,在一次新生代垃圾回收后,如果对象还存活,则会进入 S0 或者 S1,并且对象的年龄还会加 1(Eden 区->Survivor 区后对象的初始年龄变为 1),当它的年龄增加到一定程度(默认为 15 岁),就会被晋升到老年代中。对象晋升到老年代的年龄阈值,可以通过参数 `-XX:MaxTenuringThreshold` 来设置。
125127

docs/java/jvm/pictures/class-loader-parents-delegation-model.drawio

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/java/jvm/pictures/class-loading-procedure.drawio

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/java/jvm/pictures/class-loading-process-verification.drawio

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/java/jvm/pictures/hotspot-heap-structure.drawio

Lines changed: 0 additions & 1 deletion
This file was deleted.
-39.2 KB
Binary file not shown.
Binary file not shown.
-8.04 KB
Binary file not shown.

0 commit comments

Comments
 (0)