從字節碼層面徹底弄清Java類的初始化順序

這裏先說結論:對於沒有繼承關係的類,初始化順序爲:靜態變量->靜態初始化塊->實例變量->實例初始化塊->構造器。(靜態變量與靜態初始化塊的初始化只會執行一次)。 對於有繼承關係的類,初始化順序爲:父類靜態變量->父類靜態初始化塊->子類靜態變量->子類靜態初始化塊->父類實例變量->父類實例初始化塊->父類構造方法->子類實例變量->子類實例初始化塊->子類構造器。(同樣父類與子類的靜態變量與靜
相關文章
相關標籤/搜索