類初始化順序

2021-10-23 12:31:44 字數 735 閱讀 2959

/*

** 類初始化順序

** 1. 靜態構造塊最先執行,並只執行一次

* 2. 成員變數執行,但靜態成員變數早於靜態塊執行

* 3. 構造塊從上至下依次執行

* 4. 構造方法執行

** 父類早於子類

** 父類靜態構造塊--》子類靜態構造塊--》父類成員變數--》父類構造塊--》父類構造方法--》子類成員變數--》子類構造塊--》子類構造方法

** 靜態成員變數先於靜態塊執行**

* 首先執行父類靜態的內容,父類靜態的內容執行完畢後,接著去執行子類的靜態的內容,

* 當子類的靜態內容執行完畢之後,再去看父類有沒有構造**塊,如果有就執行父類的構造**塊,

* 父類的構造**塊執行完畢,接著執行父類的構造方法;父類的構造方法執行完畢之後,它接著去看子類有沒有構造**塊,

* 如果有就執行子類的構造**塊。子類的構造**塊執行完畢再去執行子類的構造方法。

總之一句話,靜態**塊內容先執行,接著執行父類構造**塊和構造方法,然後執行子類構造**塊和構造方法。

* */

public class test3

}class a

static

a()}class b extends a

static

}class c

static

}class d

static

}

類初始化順序

類初始化時,jvm會先初始化所有 1,靜態屬性,靜態例項,靜態塊。2.新建例項 靜態或非靜態 時會先執行所有非靜態屬性和構造塊 非靜態屬性和構造塊執行級別相同,誰前誰先 然後構造方法。注意 1 靜態 塊不能存在於任何方法體內。2 靜態 塊不能直接訪問靜態例項變數和例項方法,需要通過類的例項物件來訪問...

Java類初始化順序

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

java類初始化順序

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