java中靜態初始化塊,例項初始化塊,建構函式區別

2021-06-27 16:59:18 字數 561 閱讀 7823

public class people

public people(string name)

/*** @param args

*/public static void main(string args)

}

執行效果:

new兩個例項,從執行結果可以看出,靜態變數和靜態初始化塊都是在類載入到系統時,載入到系統中,靜態初始化塊只執行一次,例項初始化塊和建構函式都是執行兩次,也就是說,有乙個物件就執行一次例項初始化塊和建構函式。 三個的執行順序也顯而易見:靜態初始化塊 -例項初始化塊- 建構函式 

在eclipse中開啟編譯的people.class如下圖所示:

0 iconst_0 這個是將靜態變數載入到記憶體中

20 ldc [32] 執行靜態初始化塊,只載入一次到記憶體

初始化塊和靜態初始化塊

初始化塊的使用 變數,靜態變數,方法,靜態方法 由圖可知變數沒問題 上面的方法不可行能否初始化靜態方法 嘗試使用初始化塊初始化構造方法 最後比較一下構造方法初始化,初始化塊初始化,靜態初始化塊初始化當中誰最先被初始化 package staticinitializelump public class...

靜態初始化塊 初始化塊 構造方法

1.所有的靜態初始化塊都優先執行,其次才是非靜態的初始化塊和建構函式,它們的執行順序是 1 父類的靜態初始化塊 2 子類的靜態初始化塊 3 父類的初始化塊 4 父類的建構函式 5 子類的初始化塊 6 子類的建構函式 注意 1 此處的構造方法需要與自己的類名相同,2 靜態 初始化塊需要用 2.構造方法...

靜態初始化和例項初始化

父類單獨的效果 當父類單獨執行時,靜態初始化塊優先執行,然後是例項初始化塊,最後才是構造器 子類單獨效果 首先執行父類的靜態初始化塊和子類的初始化塊 優先執行靜態 然後執行父類的例項初始化塊和構造器,最後執行子類的例項初始化塊和構造器 父類子類效果1 父在前子在後 先將父類的物件例項出來後,進行子類...