靜態代碼塊和構造代碼塊的相關問題

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>*/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章