Java中静态变量和静态代码块的初始化顺序
这两个是同样优先级的,初始化顺序由他们本身顺序决定
以下代码可以拷贝过去试试,然后更换两者顺序
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"); } }
网上有些测出来是代码块在先 有的测出来是静态变量在先,就是这个原因