From 9ace3a0bd70f36d4fcd5b6aeb16508c1d09755ea Mon Sep 17 00:00:00 2001 From: wero Date: Sun, 23 Dec 2018 15:29:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0JVM=E7=B1=BB=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E7=9A=84=E9=83=A8=E5=88=86=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/notes/Java 虚拟机.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地**开始**,强调开始是因为这些阶段通常都是**相互交叉地混合式进行的**,通常在一个阶段执行的过程中调用另一个阶段(比如加载阶段需要验证字节码,这就需要调用验证阶段,即加载阶段还没有结束,但是验证阶段已经开始),但是两个阶段的开始时间仍然保持着固定的先后顺序。 ## 类加载过程