public class B{
public static B b1 = new B();
public static B b2 = new B();
{
System.out.println("构造块");
}
static{
System.out.println("静态块");
}
public static void main(String[] args){
B b3 = new B();
}
输出结果?
一、进行类加载 后
1、先加载静态属性:
加载静态属性b1, b2时,创建对象(执行构造方法前,执行构造块:构造块)-输出2次"构造块"
2、再执行静态块,自动调用执行。-输出"静态块"
二、再执行main方法:
new B 执行构造块 - 输出"构造块"
构造块
构造块
静态块
构造块