Java 中强引用, 软引用SoftReference,弱引用WeakReference,虚引用

Java当中的引用有四种:

1.强引用 

平常我们用的最多的引用。

只有当分配的内存对象不再有任何引用时,GC才可能开始回收其内存。

 

1 A obj = new A();
2 .....
3 obj =null;

此时obj 可以被回收。

 

2.软引用SoftReference:

SoftReference常常被用于高速缓存cache,它的特点是,并不是你把它设成了null(对象不可达),GC就会回收它,而是只有当内存不足时,才去回收它!

 

3.弱引用WeakReference

实际上是一种“间接”引用,

当我们希望能随时取得某对象的信息,但又不想影响此对象的垃圾收集,那么你应该用 Weak Reference来记住此对象。

 

 1 A obj = new A();
 2     WeakReference wr = new WeakReference(obj);
 3     obj = null;
 4 
 5     //等待一段时间,obj对象就会被垃圾回收
 6 ...
 7 
 8 if (wr.get()==null) {
 9 System.out.println("obj 已经被清除了 ");
10 } else {
11 System.out.println("obj 尚未被清除,其信息是 " obj.toString());
12 }

 

 

虚引用

posted @ 2012-06-10 11:44  Stanley.Luo  阅读(1654)  评论(0)    收藏  举报