1.子类test1
public class Test1 extends Test2
{
private static final class Factory
{
//在main方法执行Test1.factory()的时候调用下面这个属性的初始化
public static final Test1 INSTANCE = new Test1();
}
private static String dd = "aaa"; //第三步执行
private static final Test1 tt = new Test1();//第四步执行
static
{
System.out.println("static 2"); //第五步执行
}
public static void main(String[] args)
{
Test1.factory();
}
public static Test1 factory()
{
return Factory.INSTANCE;
}
}
父类 test2
public class Test2
{
private static final Test2 tt2 = new Test2(); //第一步执行
static
{
System.out.println("static t2"); //第二步执行
}
public Test2()
{
System.out.println("Test2");
}
}
在执行test1的main方法时,加载静态属性的顺序