下面程序答案
public class B
{
public static B t1 = new B();
public static B t2 = new B();
static
{
System.out.println("构造块");
}
{
System.out.println("静态块");
扫描二维码关注公众号,回复:
774391 查看本文章
}
public static void main(String[] args)
{
B t = new B();
}
}
说实话:我开始以为是:静态块 构造块 构造块 构造块
正确答案是 :构造块 构造块 静态块 构造块
答案分析:
如果没有 B t=new B()
类会有一个初使化顺序,类自身初使化顺序是定义顺序,从上至下
初使化程序: t1 = new B(); ----> t2 = new B();--->静态块
后面多一个 B t=new B() 最后构造
类的加载过程: