深入解析 JVM 中静态块、静态属性、构造块与构造方法的执行顺序
一、JVM 类加载机制简介
在讨论执行顺序之前,我们需要先了解 JVM 是如何加载类的。JVM 的类加载机制包括以下几个步骤:
- 加载(Loading):JVM 通过类加载器将类的字节码文件加载到内存中。
- 连接(Linking):
- 验证(Verification):确保字节码的正确性和安全性。
- 准备(Preparation):为静态变量分配内存并初始化为默认值。
- 解析(Resolution):将符号引用转换为直接引用。
- 初始化(Initialization):执行类的静态初始化块和静态变量的赋值操作。
在类的初始化过程中,静态块和静态变量优先执行,然后是构造块、构造方法等。
二、静态块、静态属性、构造块、构造方法详解
在 Java 中,类的初始化和对象的创建过程中,会涉及到静态块、静态属性、构造块和构造方法。它们各自的作用如下: