java中static修飾符的程式碼的載入順序
1:首先載入被final static 修飾的原始資料型別的資料成員(若是其他型別的物件,包括原始資料型別的類包裝器,如Integer,也排在第3載入)。
2:其次載入處於static塊中的程式碼塊。
3:最後才是載入只被static修飾的資料成員。
測試例項:
package com.liu.person;
import java.util.Random;
public class TestStatic {
public static int a = 10;
public static final String s1 = new String("sss");
public static final String s2 = "aaaaaaa";
public static final int b = new Integer(20);
public static final int c = new Random().nextInt();
public static final int d = 250;
static {
a = 0;
System.out.println("initable InitSquence");
}
public static void main(String[] args) {
System.out.println(TestStatic.s1);
}
}
輸出:->initable InitSquence
->sss
如果改成:System.out.println(TestStatic.s2);
則輸出:->aaaaaaa
如果改成:System.out.println(TestStatic.b);
則輸出:->initable InitSquence
->20
如果改成:System.out.println(TestStatic.a);
則輸出:->initable InitSquence
->0
如果改成:System.out.println(TestStatic.d);
則輸出:->250