package test;
class TestA {
?? ?public TestA() {
?? ??? ?System.out.println("Test--A");
?? ?}
}
class TestB {
?? ?public TestB() {
?? ??? ?System.out.println("Test--B");
?? ?}
}
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();
?? ?}
}
//
// 結果:
// *******
// Test--A
// 靜態初始化塊
// Test--B
// 大家可以隨意改變變量a、變量b以及靜態初始化塊的前后位置,
//就會發現輸出結果隨著它們在類中出現的前后順序而改變,
//這就說明靜態變量和靜態初始化塊是依照他們在類中的定義順序進行初始化的。
//同樣,變量和初始化塊也遵循這個規律。