靜態初始塊和非靜態初始塊有什麼區別?

2021-09-24 22:16:49 字數 350 閱讀 8775

非靜態初始塊主要用於物件的初始化操作,在每一次建立物件時都要呼叫一次,其執行順序在構造方法之前。

如果初始化塊前有static關鍵字修飾,那麼該初始塊稱為靜態初始塊。由於非靜態成員不能再靜態方法中使用,同樣也不能在靜態初始塊中,因此,靜態初始塊主要用於初始化靜態變數和靜態方法。靜態初始塊只呼叫一次,是在類被第一次載入到記憶體時,並非一定要建立物件才執行。

靜態初始塊的執行順序是在非靜態初始塊之前,因此比非靜態初始塊執行的要早。

public class tset01 

} class t

static

public t()

}``

靜態塊 構造塊的初始順序

public class b static public static void main string args 輸出為 構造塊 構造塊 靜態塊 構造塊 當初這道題做錯了 到後來又做了一遍又錯了,啪啪啪大臉,這回好好整理下,不能再錯了。總結一下 靜態方法只會初始化一次。程式中最先初始化的是靜態域包...

靜態塊與非靜態塊

在 中,有時候會遇到這種情況,static 以及不帶static的情況 public class staticblock 非靜態塊 public static void main string args 列印出來的結果是 這是靜態塊裡的內容!這是非靜態塊裡的內容!這是非靜態塊裡的內容!這是非靜態塊裡...

初始化塊和靜態初始化塊

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