java初始化順序

2021-07-25 03:30:07 字數 639 閱讀 3206

public

class

father

static

public

father()}

public

class

sonextends

father

static

public

son()}

測試:

new son();

輸出:father-static-b==2

son-static-b==2

father-a==1

father-b==2

father-構造方法-a==1

father-構造方法-b==2

son-a==1

son-b==2

son-構造方法-a==1

son-構造方法-b==2

可以看出,初始化順序應該是:

1、父類靜態初始化塊

2、子類靜態初始化塊

3、父類初始化塊

4、父類構造器

5、子類初始化塊

6、子類構造器

又由於在初始化塊中輸出了變數的值,說明在進入初始化塊之前,變數已經初始化完成了。而且,據說也是靜態變數優先於例項變數。

java初始化順序

1 父類靜態成員和靜態初始化塊 按在 中出現的順序依次執行 2 子類靜態成員和靜態初始化塊 按在 中出現的順序依次執行 3 父類例項成員和例項初始化塊 按在 中出現的順序依次執行 4 父類構造方法 5 子類例項成員和例項初始化塊 按在 中出現的順序依次執行 6 子類構造方法 public abstr...

java初始化順序

例如以下 package chapter5 public class demo1one public void printinfo public static void main string args 程式一開始先執行 private static string password 0721 這行 ...

JAVA初始化順序

1 當使用新建物件例項或者呼叫靜態成員變數或者方法時,初始化靜態變數 2 靜態變數在初始化時在前面的先初始化,靜態塊和靜態變數相同對待 在初始化過程中,有新建物件例項的時候,暫時停止後面的靜態變數初始化 3 靜態變數沒有初始化時,使用預設的初始值 如int為0 4 新建物件例項,對非靜態的成員變數進...