java 類初始化順序

2021-08-09 22:06:17 字數 418 閱讀 2383

1、類初始化產生的契機(類在第一次被主動使用的情況下)

①使用關鍵字new例項化物件的時候(類需要先初始化才能被例項化)。

②初始化某個類的子類的時候。

③呼叫某個類的靜態方法。

④讀取和設定類的靜態欄位的時候(被final放入常量池中的不算)

⑤對類進行反射呼叫

⑥虛擬機器啟動被註明是啟動類(含有main的類)。

2、new乙個物件的時候類成員的執行順序。

父類的靜態**塊→子類的靜態**塊(類的初始化,初始化靜態成員變數)→父類的**塊→父類的建構函式→子類的**塊→子類的建構函式(物件的建立,初始化非靜態成員變數)

3、如有父類中有乙個靜態變數,子類去呼叫這個靜態變數,那麼會初始化父類,而不會初始化子類,靜態變數在那個類中,呼叫它就會初始化那個類,因為靜態變數不被繼承。

Java類初始化順序

類的初始化順序 首先執行父類靜態的內容,父類靜態的內容執行完畢後,接著去執行子類的靜態的內容,當子類的靜態內容執行完畢之後,再去看父類有沒有非靜態 塊,如果有就執行父類的非靜態 塊,父類的非靜態 塊執行完畢,接著執行父類的構造方法 父類的構造方法執行完畢之後,它接著去看子類有沒有非靜態 塊,如果有就...

java類初始化順序

我們大家都知道,對於靜態變數 靜態初始化塊 變數 初始化塊 構造器,它們的初始化順序依次是 靜態變數 靜態初始化塊 變數 初始化塊 構造器。我們也可以通過下面的測試 來驗證這一點 public class initialordertest 初始化塊 構造器 public initialorderte...

java類初始化順序

我們大家都知道,對於靜態變數 靜態初始化塊 變數 初始化塊 構造器,它們的初始化順序依次是 靜態變數 靜態初始化塊 變數 初始化塊 構造器。我們也可以通過下面的測試 來驗證這一點 public class initialordertest 初始化塊 構造器 public initialorderte...