Java 中的初始化程序執行順序 給定的程式碼片段提出了 Java 中欄位和建構函式初始化順序的問題。與建構函式先於欄位初始化的預期相反,程式的輸出「YXZY」表示情況並非如此。 為了闡明此行為,讓我們深入研究Java 中的實際初始化順序: 靜態變數初始化器和區塊: 先執行任何靜態變數初始化程序和靜態初始化區塊,確保在建立類別的任何實例之前初始化所有靜態成員。 超級()調用: 下一步是對super() 構造函數的調用,無論是顯函數式還是隱式。此呼叫初始化父類別的欄位和建構函數。 實例變數初始化器和區塊: 接下來,執行變數初始化程序和實例初始化區塊,依照實例成員出現在實例中的順序初始化它們code. 建構子主體: 最後執行建構子的剩餘主體,完成初始化過程.