在Java中,靜態代碼塊(也稱為靜態初始化器)是一種特殊的代碼段,用于初始化類級別的靜態變量和執行僅需要執行一次的操作。靜態代碼塊在類被加載到JVM時自動執行,且僅執行一次。
靜態代碼塊的執行順序是根據它們在類中的順序。當類被加載時,靜態代碼塊按照它們在代碼中出現的順序依次執行。如果有多個靜態代碼塊,那么它們將按照順序執行,而不是并行執行。
以下是一個簡單的例子,說明了靜態代碼塊的執行順序:
public class MyClass {
static int a;
static int b;
static {
System.out.println("靜態代碼塊1");
a = 10;
System.out.println("靜態代碼塊1 - a = " + a);
}
static {
System.out.println("靜態代碼塊2");
b = 20;
System.out.println("靜態代碼塊2 - b = " + b);
}
public static void main(String[] args) {
System.out.println("主方法");
}
}
輸出結果:
靜態代碼塊1
靜態代碼塊1 - a = 10
靜態代碼塊2
靜態代碼塊2 - b = 20
主方法
從輸出結果可以看出,靜態代碼塊按照它們在類中的順序執行。首先執行靜態代碼塊1,然后執行靜態代碼塊2。在靜態代碼塊中,對靜態變量的賦值操作會在靜態代碼塊執行完畢后才進行。