强引用:正常代码中使用的引用,一般不会被回收 软引用:如果即将发生内存溢出,那么回收来腾出空间 弱引用:下一次GC时就回收 虚引用:实际并不引用数值,只是在对象被回收时,收到一个通知
Object obj = new Object(); ReferenceQueue queue = new ReferenceQueue (); SoftReference ref = new SoftReference(obj ); WeakReference ref = new WeakReference(obj ); PhantomReference ref = new PhantomReference (obj, queue); // 当需引用对象被回收时,queue就会加入ref这个对象 // 所以从queue是否包含ref就可以判断obj是否被回收