Java四种对象引用方式

阅读更多

四大引用的灵活应用可以开发出更高性能的Java程序,在Android开发中应用广泛。

定义:

强引用:通常定义的对象都是强引用,即是OOM,垃圾回收机制也不会回收。定义方式:直接定义;

软引用:发生内存不足时,为了避免OOM,垃圾回收机制就会回收。定义方式:SoftReference;

弱引用:在进行垃圾回收时,只要所引用的对象为null,则直接回收。定义方式:WeakReference;

虚引用:也叫幽灵引用,在进行垃圾回收时,无论是否为null,都要被回收,主要用来跟踪垃圾回收过程。定义方式:PhantonReference;

使用场景:

这里我们主要讲软引用和和弱小的使用场景。

软应用:对于软引用关联着的对象,只有在内存不足的时候JVM才会回收该对象。因此,这一点可以很好地用来解决OOM的问题,并且这个特性很适合用来实现缓存:比如网页缓存、图片缓存等。 

import java.lang.ref.SoftReference;

public class Main {
    public static void main(String[] args) {

        SoftReference sr = new SoftReference(new String("hello"));
        System.out.println(sr.get());
    }
}

 弱引用:

 如果一个对象只具有弱引用,他的生命周期更加短暂,那么当垃圾回收器线程在扫描他所管理的内存区域时,不管内存空间是否足够,都会将这个对象回收。不过垃圾回收器线程优先级比较低,因此只有弱引用的对象不一定会很快的被回收。

WeakReference wr = new WeakReference(str, rq);

 

 

你可能感兴趣的:(java,软引用)