这两个是同样优先级的,初始化顺序由他们本身顺序决定
以下代码可以拷贝过去试试,然后更换两者顺序
public class TestOrder {
// 静态变量
public static TestA a = new TestA();
// 静态初始化块
static {
System.out.println("静态初始化块");
}
// 静态变量
public static TestB b = new TestB();
public static void main(String[] args) {
new TestOrder();
}
}
class TestA {
public TestA() {
System.out.println("Test--A");
}
}
class TestB {
public TestB() {
System.out.println("Test--B");
}
}
网上有些测出来是代码块在先 有的测出来是静态变量在先,就是这个原因