构造方法先执行,然后才执行初始化块。

在 Java 对象初始化过程中,构造方法负责创建对象并初始化其成员变量,而初始化块则用于在构造方法执行之前执行一些额外的初始化操作。

执行顺序

  1. 分配内存: 当使用 new 关键字创建对象时,首先会为对象分配内存空间。
  2. 初始化成员变量: 在内存分配之后,成员变量会被初始化为默认值(例如,整数为 0,字符串为 null)。
  3. 执行初始化块: 接着,会执行所有静态初始化块,然后执行非静态初始化块。
  4. 调用构造方法: 最后,调用相应的构造方法来完成对象的初始化。

示例

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();
    }
}

输出

静态初始化块
非静态初始化块
构造方法

结论

从上面的示例可以看出,构造方法先于初始化块执行。这是因为构造方法负责对象的创建和初始化,而初始化块则是在构造方法执行之前进行一些额外的操作。

Java 对象初始化:构造方法与初始化块的执行顺序

原文地址: https://www.cveoy.top/t/topic/o8cM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录