public class Test{ static int num; static int numObj;//记录有多少个对象产生! static{//静态代码块, 是用来给类进行初始化的! //num = 10; ++num; num *=12;//没有进入静态代码块之前,num的初始化值是0 System.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); } }