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");
	}
}

  网上有些测出来是代码块在先 有的测出来是静态变量在先,就是这个原因

posted @ 2016-09-02 16:30  ruiruige1991  阅读(570)  评论(0编辑  收藏  举报