Java類的初始化順序

2021-08-03 02:43:33 字數 652 閱讀 2265

一般順序:靜態塊(靜態變數)——>成員變數——>構造方法——>靜態方法

1、靜態**塊(只載入一次) 2、構造方法(建立乙個例項就載入一次)3、靜態方法需要呼叫才會執行

public class test

static int num = 4; //2.第二步,靜態變數和靜態**塊的載入順序由編寫先後決定

int a = 5; //6.第六步,按照順序載入變數

test()

static

static void run() // 靜態方法,呼叫的時候才載入// 注意看,e沒有載入

}

繼承關係的載入順序:

1、先執行父類的靜態**塊和靜態變數初始化,並且靜態**塊和靜態變數的執行順序只跟**中出現的順序有關。

2、執行子類的靜態**塊和靜態變數初始化。

3、執行父類的例項變數初始化

4、執行父類的建構函式

5、執行子類的例項變數初始化

6、執行子類的建構函式

如果類已經被載入:

則靜態**塊和靜態變數就不用重複執行,再建立類物件時,只執行與例項相關的變數初始化和構造方法。

Java類初始化順序

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

java類初始化順序

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

java類初始化順序

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