public class Test {
private final String a;
static {
System.out.println("静态初始化块执行");
}//类加载时执行
{
System.out.println("实例初始化块执行");
a = "123";
}//实例块在构造之前
public Test() {
System.out.println("构造方法执行");
}//new 无参时
public static void main(String[] args) {
System.out.println("创建第一个对象:");
new Test();
System.out.println("创建第二个对象:");
new Test();
}
}
静态初始化块执行
创建第一个对象:
实例初始化块执行
构造方法执行
创建第二个对象:
实例初始化块执行
构造方法执行
执行顺序解释
-
静态初始化块:静态初始化块在类加载时执行,并且只执行一次。无论创建多少个实例,静态初始化块只会在类第一次加载时执行。
-
实例初始化块:实例初始化块在每次创建对象时执行,并且它的执行顺序在构造方法之前。
-
构造方法:构造方法在实例初始化块执行完之后执行,用于进一步初始化对象。