public class Test{static int num;static int numObj;//記錄有多少個對象產生!static{//靜態代碼塊, 是用來給類進行初始化的!//num = 10;++num;num *=12;//沒有進入靜態代碼塊之前,num的初始化值是0System.out.println(num);//main(null);//靜態代碼塊中可以調用main, 想一想也是, 大家都是靜態的嘛!}//先執行構造代碼段, 然后指行構造函數{//這叫做構造代碼段,可以給所有對象進行初始化!每一個對象產生時都會執行!++numObj;System.out.println("構造代碼段!");}public Test(){//在構造方法中進行對象實例的計數//++numObj;System.out.println("構造函數!");}public void finalize(){//當對象生命周期結束時調用System.out.println("對象釋放!");--numObj;}public static void show(){System.out.println("創建的實例個數:" + numObj);}public static void main(String[] args){System.out.println("靜態代碼段是用來初始化類的!");Test t1 = new Test();t1.show();{//局部代碼段new Test();}System.gc();//啟動垃圾回收器!new Test();new Test();System.out.println(Test.numObj);}
}