class a
{
static{ //靜態代碼塊 只在第一次加載類的時候執行
System.out.println("靜態代碼塊1,類加載它就加載了");
}
static{ // 可以有多個靜態代碼塊
System.out.println("靜態代碼塊2");
}
a() // 構參
{
System.out.println("構造函數");
}
{ //構造代碼塊 每初始化一個對象 都會執行這塊代碼 並優先於
//構造函數進行 也可以有多塊
System.out.println("構造函數代碼塊1");
}
{
System.out.println("構造函數代碼塊2");
}
public static void main(String [] args)
{
System.out.println("第一次建立對象");
new a ();
System.out.println("再建立一個對象");
new a ();
System.out.println("主函數");
System.gc(); //調用垃圾回收機制 ,回收堆內存。
}
public void finalize() // 複寫Object中的finalize函數 當垃圾回收器確定不存在
//對該對象的更多引用時,由對象的垃圾回收器調用此方法。
{
System.out.println("回收垃圾 ");
}
}
/*
C:\Users\Administrator\Desktop>java a
靜態代碼塊1,類加載它就加載了
靜態代碼塊2
第一次建立對象
構造函數代碼塊1
構造函數代碼塊2
構造函數
再建立一個對象
構造函數代碼塊1
構造函數代碼塊2
構造函數
主函數
回收垃圾
C:\Users\Administrator\Desktop>*/
靜態代碼塊和構造代碼塊的相關問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.