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);}
}