JAVA中靜態塊 靜態變數載入順序詳解

2021-08-17 02:20:39 字數 1310 閱讀 1643

public

class test

static

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

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

test()

static

static

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

}

public

class print

}

public

class

parent

public

static

print obj4 = new

print("5");

public

print obj5 = new

print("6");

public

parent()

}

public

class

child

extends

parent

public

static

print obj1 = new

print("b");

public

print obj2 = new

print("c");

public child ()

public

static

print obj3 = new

print("e");

public

print obj4 = new

print("f");

public

static void main(string args)

}

執行main方法,程式輸出順序為: 134

5a b e 2

67 c f d 2

67 c f d

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

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

4、執行父類的建構函式

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

6、執行子類的建構函式

如果類已經被載入: 

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

面試題 JAVA中靜態塊 靜態變數載入順序詳解

public class test static int num 4 2.第二步,靜態變數和靜態 塊的載入順序由編寫先後決定 int a 5 6.第六步,按照順序載入變數 test static static void run 靜態方法,呼叫的時候才載入 注意看,e沒有載入 一般順序 靜態塊 靜態變...

Java中靜態變數和非靜態變數的初始化順序

先看下面的程式 package c05.net class bowl void f1 class cupboard static bowl b3 new bowl 3 class table table string a,int i public class order public static ...

java 靜態變數 與 非靜態變數

一 建立乙個類的物件時 new 類名 時,該類的.class檔案會被載入到一段記憶體中。1.先將該類的.class檔案會被載入到一段記憶體,初始化static屬性和方法,為他們分配空間,以後一直在記憶體中,即使這個物件被銷毀。這就是不建議使用static屬性和方法的原因之一 2.copy其中非sta...