加了static就是靜態初始化塊。靜態初始化塊只能呼叫靜態資源。沒有加static修飾符的就是普通初始化**塊。
new乙個實力物件時,先執行初始化塊,在執行建構函式。
靜態只在載入類的時候執行一次,普通**塊在new物件時每次都會呼叫。
補充知識點:
1.new乙個物件時會先載入類資訊,類資訊載入後在建立例項物件,後面建立例項物件不會在載入類,所以靜態資源只執行一次。
2. 乙個有繼承父類的class,在建立class時會一直從父類向下建立物件,也就是說父類的無參物件也會被執行。(靜態)初始化模組的執行順序也是如此。父類的初始化模組會先執行。
Java初始化塊
非靜態初始化塊會在每個物件生成時被執行一次,可以初始化類的例項變數。非靜態初始化塊會在建構函式執行時,在建構函式主體 執行之前被執行。靜態初始化塊會在物件裝載到系統的時候執行一次,它僅能初始化類變數,即static修飾的資料成員。class helloa public helloa int a st...
初始化塊和靜態初始化塊
初始化塊的使用 變數,靜態變數,方法,靜態方法 由圖可知變數沒問題 上面的方法不可行能否初始化靜態方法 嘗試使用初始化塊初始化構造方法 最後比較一下構造方法初始化,初始化塊初始化,靜態初始化塊初始化當中誰最先被初始化 package staticinitializelump public class...
java中靜態初始化塊,例項初始化塊,建構函式區別
public class people public people string name param args public static void main string args 執行效果 new兩個例項,從執行結果可以看出,靜態變數和靜態初始化塊都是在類載入到系統時,載入到系統中,靜態初始化...