类的初始化顺序:

  1. 静态初始化块
  2. main函数中的输出(调用构造函数前)
  3. 实例的初始化块(初始化匿名内部类的地方)
  4. 构造函数初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import static java.lang.System.out;

public class InitializerDemo {
public InitializerDemo() {
out.println("in constructor"); // Fourth
}

static {
out.println("in static initializer"); // First
}

{
out.println("in instance initializer"); // Third
}

public static void main(String[] args) {
out.println("in main() method"); //second
new InitializerDemo();
}
}