JAVA中靜態(tài)塊、靜態(tài)變量加載順序詳解

public class test {                         //1.第一步,準(zhǔn)備加載類

    public static void main(String[] args) {
        new test();                         //4.第四步,new一個(gè)類,但在new之前要處理匿名代碼塊        
    }

    static int num = 4;                    //2.第二步,靜態(tài)變量和靜態(tài)代碼塊的加載順序由編寫(xiě)先后決定 

    {
        num += 3;
        System.out.println("b");           //5.第五步,按照順序加載匿名代碼塊,代碼塊中有打印
    }

    int a = 5;                             //6.第六步,按照順序加載變量

    { // 成員變量第三個(gè)
        System.out.println("c");           //7.第七步,按照順序打印c
    }

    test() { // 類的構(gòu)造函數(shù),第四個(gè)加載
        System.out.println("d");           //8.第八步,最后加載構(gòu)造函數(shù),完成對(duì)象的建立
    }

    static {                              // 3.第三步,靜態(tài)塊,然后執(zhí)行靜態(tài)代碼塊,因?yàn)橛休敵觯蚀蛴
        System.out.println("a");
    }

    static void run()                    // 靜態(tài)方法,調(diào)用的時(shí)候才加載// 注意看,e沒(méi)有加載
    {
        System.out.println("e");
    }
}
  1. 執(zhí)行靜態(tài)變量和靜態(tài)代碼塊 按照熟悉執(zhí)行
  2. 普通變量,匿名代碼塊 按照順序執(zhí)行
  3. 最后執(zhí)行構(gòu)造函數(shù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容