下面这段代码可以用来测试GC的工作情况,finalize方法是关键 public class GCTest { public static void main(String[] args) throws InterruptedException { //runGC(); for(int i=0;i<100;i++){ newObj(); }
System.out.println("一共产生的对象个数:"+A.i); System.out.println("垃圾回收的对象个数:"+A.gc); } static void newObj(){ for(int i=0;i<1000;i++){ Object o=new A(); } } static void runGC(){ Runtime.getRuntime().gc(); } } class A{ public static int i=0; public static int gc=0; int ii=i++; public String toString(){ return "Object"+ii; } public void finalize(){ //System.out.println("GC:"+this.toString()); gc++; } }

|