關於靜態塊 靜態屬性 構造塊 構造方法的執行順序

2021-09-19 09:18:09 字數 1041 閱讀 6946

示例**

public class helloa 

//父類**塊

//靜態**塊

static

//父類靜態屬性初始化

private static string getstaticstr()

private string getstr()

} class hellob extends helloa

//子類**塊

//子類靜態**塊

static    

//子類靜態屬性

private static string getstaticstr()

//子類例項屬性初始化

private string getstr()

}

執行一次  new hellob();

執行順序:載入父類類物件:父類靜態屬性 > 父類靜態塊》

載入子類類物件:子類靜態屬性》子類靜態塊 >

父類例項化:父類例項屬性初始化 > 父類普通**塊》父類構造方法 >

子類例項化:子類例項屬性初始化 > 子類普通**塊》子類構造方法》

執行多次  new hellob(); new hellob() (此類被載入過,不再載入父類和子類的類物件,則只載入一次)

執行順序:載入父類類物件:父類靜態屬性 > 父類靜態塊》

載入子類類物件:子類靜態屬性》子類靜態塊 >

父類例項化:父類例項屬性初始化 > 父類普通**塊》父類構造方法 >

子類例項化:子類例項屬性初始化 > 子類普通**塊》子類構造方法》               

父類例項化:父類例項屬性初始化 > 父類普通**塊》父類構造方法 >

子類例項化:子類例項屬性初始化 > 子類普通**塊》子類構造方法》

關於靜態塊 靜態屬性 構造塊 構造方法的執行順序

總結 1 類載入時,執行靜態 塊和初始化靜態變數。執行順序跟 順序一致。2 類例項化時,初始化變數 執行 塊 執行構造。其中初始化變數和 塊的順序跟 順序一致。執行構造是在最後。3 例項化子類時,會先呼叫父類的構造方法。呼叫構造方法之前,會先執行該類的 塊。4 類只會載入一次。5 靜態變數或靜態方法...

構造塊 靜態塊

構造塊 靜態塊 static靜態塊在類載入的時候執行,且只執行一遍。靜態變數也在類載入的時候初始化 public class test public static void main string args 輸出 12 構造塊在類初始化的時候執行 public class test public s...

靜態塊》main 構造塊》構造方法

用static申明,jvm載入類時執行,僅執行一次 構造塊 類中直接用 定義,每一次建立物件時執行 執行順序優先順序 靜態塊 main 構造塊 構造方法 靜態塊按照申明順序執行,所以先執行publicstaticb t1 newb 該語句建立物件,則又會呼叫構造塊,輸出構造塊 接著執行public ...