Skip to content

Commit 538a0cb

Browse files
authored
Update class-loading-process.md
添加深入理解虚拟机的参考位置描述中丢失的小数点
1 parent 6bebfdd commit 538a0cb

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

docs/java/jvm/class-loading-process.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,15 @@ tag:
8383
2. 从概念上讲,类变量所使用的内存都应当在 **方法区** 中进行分配。不过有一点需要注意的是:JDK 7 之前,HotSpot 使用永久代来实现方法区的时候,实现是完全符合这种逻辑概念的。 而在 JDK 7 及之后,HotSpot 已经把原本放在永久代的字符串常量池、静态变量等移动到堆中,这个时候类变量则会随着 Class 对象一起存放在 Java 堆中。相关阅读:[《深入理解 Java 虚拟机(第 3 版)》勘误#75](https://github.com/fenixsoft/jvm_book/issues/75 "《深入理解Java虚拟机(第3版)》勘误#75")
8484
3. 这里所设置的初始值"通常情况"下是数据类型默认的零值(如 0、0L、null、false 等),比如我们定义了`public static int value=111` ,那么 value 变量在准备阶段的初始值就是 0 而不是 111(初始化阶段才会赋值)。特殊情况:比如给 value 变量加上了 final 关键字`public static final int value=111` ,那么准备阶段 value 的值就被赋值为 111。
8585

86-
**基本数据类型的零值**:(图片来自《深入理解 Java 虚拟机》第 3 版 7.33 )
86+
**基本数据类型的零值**:(图片来自《深入理解 Java 虚拟机》第 3 版 7.3.3 )
8787

8888
![基本数据类型的零值](https://oss.javaguide.cn/github/javaguide/java/%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E7%9A%84%E9%9B%B6%E5%80%BC.png)
8989

9090
### 解析
9191

9292
**解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程。** 解析动作主要针对类或接口、字段、类方法、接口方法、方法类型、方法句柄和调用限定符 7 类符号引用进行。
9393

94-
《深入理解 Java 虚拟机》7.34 节第三版对符号引用和直接引用的解释如下:
94+
《深入理解 Java 虚拟机》7.3.4 节第三版对符号引用和直接引用的解释如下:
9595

9696
![符号引用和直接引用](https://oss.javaguide.cn/github/javaguide/java/jvm/symbol-reference-and-direct-reference.png)
9797

0 commit comments

Comments
 (0)