构造代码块 和 静态代码块执行顺序和次数
public class B {
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println("构造块");
}
static {
System.out.println("静态块");
}
public static void main(String[] args) {
System.out.println("--------");
B b = new B();
}
}
输出结果:
构造块
构造块
静态块
--------
构造块
小结:代码执行顺序,先执行静态代码,从上往下依次执行,
执行第一个static,创建了t1静态对象,执行构造代码块,输出“构造块”;
执行第二个static,创建了t2静态对象,执行构造代码块,输出“构造块”;
执行第三个static,静态代码块,输出“静态块”;
执行住函数,输出“--------”;
创建b对象,执行构造代码块,输出“构造块”;
静态代码块只执行一次
构造代码块创建几次对象执行几次