看看这个行啊?
package reference;
import java.lang.ref.*;
import  java.util.*;class verybig{
static final int sz=10000;
double[] d=new double[sz];
String ident;public verybig(String id){
ident=id;
}public String toString(){
return ident;
}public void finalize(){
System.out.println("Finalize"+ident);}
}public class reference { static ReferenceQueue rq= new ReferenceQueue(); public static  void checkqueue()
 {
 Object inq=rq.poll();
 if(inq!=null)
 System.out.println("in queue:"+ ((Reference)inq).get());
 }
   public static void main(String[] args) {
 int size=10;
if(args.length>0)
size=Integer.parseInt(args[0]);
SoftReference[] sa= new SoftReference[size];
for(int i=0;i<sa.length;i++)
{
sa[i]=new SoftReference(new verybig("soft  "+i),rq);
System.out.println("just creat:  "+sa[i].get());
checkqueue();
}
WeakReference[] wa=new WeakReference[size];
for(int i=0;i<wa.length;i++)
{
wa[i]= new WeakReference(new verybig("weak   "+i),rq);
System.out.println("just creat:  "+ wa[i].get());
checkqueue();
}
SoftReference s= new SoftReference(new verybig("soft"));
WeakReference w= new WeakReference(new verybig("weak"));
System.gc();
 PhantomReference[] pa= new PhantomReference[size];
 for(int i=0;i<pa.length;i++){
 pa[i]= new PhantomReference(new verybig("phant  " +i),rq);
 System.out.println("just creat:  "+(verybig)pa[i].get());
 checkqueue();
 }
}
}