我了解到初始化顺序的原则是:
但我仍然对此代码的输出感到困惑:
public class Test1 {
static {
add(2);
}
static void add (int num) {
System.out.println(num + " ");
}
public Test1() {
add(5);
System.out.println("Constructor!");
}
static {
add(4);
}
{
add(6);
}
static {
new Test1();
}
{
add(8);
}
public static void main(String[] args) {
System.out.println("Main method!");
add(10);
}
{
add(11);
}
static {
add(12);
}
}
Run Code Online (Sandbox Code Playgroud)
结果是:
2
4
6
8
11
5
Constructor!
12
Main method!
10
Run Code Online (Sandbox Code Playgroud)
如果没有add(10)的陈述; 加(11); 加(12); 我完全可以理解.你能解释一下这三个陈述的初始化顺序吗?