溫馨提示×

Java成員變量靜態代碼塊執行時機是什么

小樊
108
2024-10-12 03:21:49
欄目: 編程語言

在Java中,靜態代碼塊(也稱為靜態初始化器)是一種特殊的代碼塊,用于初始化類級別的靜態變量和執行僅需要執行一次的操作。靜態代碼塊的執行時機是在類被加載到Java虛擬機(JVM)時進行的。具體來說,靜態代碼塊的執行順序是根據它們在類中的順序。當類被加載時,靜態代碼塊會按照它們在代碼中出現的順序被調用,并且每個靜態代碼塊只執行一次。

需要注意的是,靜態代碼塊僅在類被加載時執行一次,而不是在創建類的實例時執行。此外,靜態代碼塊的執行順序對于類的所有實例是相同的,因為它們都是基于同一個類加載的。

以下是一個簡單的示例,說明了靜態代碼塊的執行時機:

public class MyClass {
    static int staticVar1;
    static int staticVar2;

    static {
        System.out.println("靜態代碼塊1開始");
        staticVar1 = 10;
        System.out.println("靜態代碼塊1結束");
    }

    static {
        System.out.println("靜態代碼塊2開始");
        staticVar2 = 20;
        System.out.println("靜態代碼塊2結束");
    }

    public static void main(String[] args) {
        System.out.println("主方法開始");
        System.out.println("main方法結束");
    }
}

輸出結果:

靜態代碼塊1開始
靜態代碼塊1結束
靜態代碼塊2開始
靜態代碼塊2結束
主方法開始
main方法結束

從輸出結果可以看出,靜態代碼塊是在類被加載時按照它們在代碼中的順序執行的,并且每個靜態代碼塊只執行了一次。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女