Java 对象初始化:构造方法与初始化块的执行顺序
构造方法先执行,然后才执行初始化块。
在 Java 对象初始化过程中,构造方法负责创建对象并初始化其成员变量,而初始化块则用于在构造方法执行之前执行一些额外的初始化操作。
执行顺序
- 分配内存: 当使用
new关键字创建对象时,首先会为对象分配内存空间。 - 初始化成员变量: 在内存分配之后,成员变量会被初始化为默认值(例如,整数为 0,字符串为 null)。
- 执行初始化块: 接着,会执行所有静态初始化块,然后执行非静态初始化块。
- 调用构造方法: 最后,调用相应的构造方法来完成对象的初始化。
示例
public class MyClass {
int x;
static {
System.out.println("静态初始化块");
}
{
System.out.println("非静态初始化块");
}
public MyClass() {
System.out.println("构造方法");
}
public static void main(String[] args) {
MyClass obj = new MyClass();
}
}
输出
静态初始化块
非静态初始化块
构造方法
结论
从上面的示例可以看出,构造方法先于初始化块执行。这是因为构造方法负责对象的创建和初始化,而初始化块则是在构造方法执行之前进行一些额外的操作。
原文地址: https://www.cveoy.top/t/topic/o8cM 著作权归作者所有。请勿转载和采集!