1 public static class TestA{ 2 TestA(){ 3 System.out.println("TestA构造函数"); 4 } 5 static 6 { 7 System.out.println("TestA静态代码块"); 8 } 9 } 10 public static class TestB{ 11 private TestA Ta= new TestA(); 12 13 { 14 System.out.println("初始化代码块"); 15 } 16 public TestB() { 17 System.out.println("TestB构造函数"); 18 } 19 static 20 { 21 System.out.println("TestB静态代码块"); 22 } 23 } 24 public static class TestC{ 25 private static TestB tb1 = new TestB(); 26 static 27 { 28 System.out.println("TestC静态代码块"); 29 } 30 31 }
调用
public static void main(String[] args) { TestC tcc = new TestC(); }
执行结果:
TestB静态代码块
TestA静态代码块
TestA构造函数
初始化代码块
TestB构造函数
TestC静态代码块
PS:先初始化属性然后才是静态初始块,然后是初始块,然后是构造方法