From dbfc4ed69d9e81090b6698bd19324312afb143c8 Mon Sep 17 00:00:00 2001 From: guide Date: Sun, 25 Apr 2021 12:53:54 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E7=B1=BB=E5=8A=A0=E8=BD=BD=E8=BF=87?= =?UTF-8?q?=E7=A8=8B.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/jvm/类加载过程.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/java/jvm/类加载过程.md b/docs/java/jvm/类加载过程.md index 57e93235..30fd1f76 100644 --- a/docs/java/jvm/类加载过程.md +++ b/docs/java/jvm/类加载过程.md @@ -68,7 +68,9 @@ Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚 ### 初始化 -初始化是类加载的最后一步,也是真正执行类中定义的 Java 程序代码(字节码),初始化阶段是执行初始化方法 ` ()`方法的过程。 +初始化阶段是执行初始化方法 ` ()`方法的过程,是类加载的最后一步,这一步 JVM 才开始真正执行类中定义的 Java 程序代码(字节码)。 + +> 说明: ` ()`方法是编译之后自动生成的。 对于` ()` 方法的调用,虚拟机会自己确保其在多线程环境中的安全性。因为 ` ()` 方法是带锁线程安全,所以在多线程环境下进行类初始化的话可能会引起死锁,并且这种死锁很难被发现。