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...