1.靜態**塊
2.預設初始化
3.構造**塊
4.構造方法
//靜態**塊先執行,構造**塊執行,物件內執行
class person
static
}public class persondemo2
}執行結果:列印
靜態**塊1
構造**塊2
建構函式3
class a
public void a(string name,int age)
}class b
}
執行順序:
1 因為new用到了 a.class, 所以會先找到a.class檔案並載入到記憶體中
2 執行該類中的static**塊,如果有的話,給a.class類進行初始化。
3 在堆記憶體中開闢空間,分配記憶體位址
4 在堆記憶體中建立物件的特有屬性,並進行預設初始化(name = null, age =0)
5 對屬性進行顯示初始化(name = "zh2")
6 對物件進行構造**塊初始化
7 對物件進行對應的建構函式初始化
8 將記憶體位址付給佔記憶體中的a變數
new乙個物件的過程
class a public void a string name,int age class b 執行順序 1 因為new用到了 a.class,所以會先找到a.class檔案並載入到記憶體中 2 執行該類中的static 塊,如果有的話,給a.class類進行初始化。3 在堆記憶體中開闢空間,分...
new乙個物件的過程
使用new關鍵字呼叫函式 new classa 的具體步驟 1.建立空物件 var obj 2.設定新物件的constructor屬性為建構函式的名稱,設定新物件的 proto 屬性指向建構函式的prototype物件 obj.proto classa.prototype 3.使用新物件呼叫函式,函...
new乙個物件的過程
看一行 singleton instance newsingleton 在編譯這行 的時候,jvm實際上會分為三個步驟 1 宣告乙個引用變數instancesingleton instance告訴編譯器宣告乙個instance 這樣的singleton 型別的引用變數,其價值將待定,直到有乙個物件真...