早上,需求分析師問我乙個類的初始化問題,乙個有繼承關係的類的初始化問題,我覺得我回答得不是非常清晰,所以我在這裡總結一下:
單個類的初始化順序:
1. 靜態變數
2. 靜態初始化塊
3. 變數
4. 初始化塊
5. 建構函式
記著,最後呼叫的才是建構函式
帶有繼承關係的類的初始化順序:
1.父類--靜態變數
2.父類--靜態初始化塊
3.子類--靜態變數
4.子類--靜態初始化塊
5.父類--變數
6.父類--初始化塊
7.父類--建構函式
8.子類--變數
9.子類--初始化塊
10.子類--建構函式
注意: 靜態的總是先於非靜態的
但是同為靜態的或者非靜態的變數和塊之間的先後順序是 誰先定義就誰先執行的
Java類初始化順序
類的初始化順序 首先執行父類靜態的內容,父類靜態的內容執行完畢後,接著去執行子類的靜態的內容,當子類的靜態內容執行完畢之後,再去看父類有沒有非靜態 塊,如果有就執行父類的非靜態 塊,父類的非靜態 塊執行完畢,接著執行父類的構造方法 父類的構造方法執行完畢之後,它接著去看子類有沒有非靜態 塊,如果有就...
java類初始化順序
我們大家都知道,對於靜態變數 靜態初始化塊 變數 初始化塊 構造器,它們的初始化順序依次是 靜態變數 靜態初始化塊 變數 初始化塊 構造器。我們也可以通過下面的測試 來驗證這一點 public class initialordertest 初始化塊 構造器 public initialorderte...
java類初始化順序
我們大家都知道,對於靜態變數 靜態初始化塊 變數 初始化塊 構造器,它們的初始化順序依次是 靜態變數 靜態初始化塊 變數 初始化塊 構造器。我們也可以通過下面的測試 來驗證這一點 public class initialordertest 初始化塊 構造器 public initialorderte...