diff --git a/docs/notes/Java 虚拟机.md b/docs/notes/Java 虚拟机.md index ed273c00..25a132c4 100644 --- a/docs/notes/Java 虚拟机.md +++ b/docs/notes/Java 虚拟机.md @@ -455,8 +455,10 @@ G1 把堆划分成多个大小相等的独立区域(Region),新生代和 - **准备(Preparation)** - **解析(Resolution)** - **初始化(Initialization)** -- 使用(Using) -- 卸载(Unloading) +- 使用(Using) +- 卸载(Unloading) + +**注意**:加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地**开始**,强调开始是因为这些阶段通常都是**相互交叉地混合式进行的**,通常在一个阶段执行的过程中调用另一个阶段(比如加载阶段需要验证字节码,这就需要调用验证阶段,即加载阶段还没有结束,但是验证阶段已经开始),但是两个阶段的开始时间仍然保持着固定的先后顺序。 ## 类加载过程