Java 的靜態初始化塊的呼叫順序 先父類後子類

2021-08-27 15:09:48 字數 489 閱讀 5994

最近面試,被問到一道題,父類和子類都有靜態初始化塊**,

其中包含輸出語句,先執行哪個。

因為從**維護的角度,我一般只是在初始化靜態容器資料時,使用static塊,

所以並不是很清楚,直觀的認為是先父類,後子類。

面試官說,父類的不會被執行。

心下存懷疑

回來寫**一試,果然如我所想。

可能面試官是在用spring容器時,又想用 static初始化塊。

但是spring中類的生存週期和bean的週期有很大間隔,可能漏看了……

**如下

public class aclass

}public class bclass extends aclass

public static void main(string args)

}

輸出結果是

aclass

bclass

java靜態塊非靜態塊建構函式的初始化順序

public class demo1 static string name2 yhr static public static void main string args 以下是輸出內容 我是非靜態塊wkwnull 我是建構函式 我是靜態塊yhr 我是非靜態塊wkwyhr 我是建構函式 從輸出可以看...

初始化塊和靜態初始化塊

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

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

public class people public people string name param args public static void main string args 執行效果 new兩個例項,從執行結果可以看出,靜態變數和靜態初始化塊都是在類載入到系統時,載入到系統中,靜態初始化...