Java四种对象引用方式_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java四种对象引用方式

Java四种对象引用方式

 2018/6/27 18:20:45  雨打蕉叶  程序员俱乐部  我要评论(0)
  • 摘要:四大引用的灵活应用可以开发出更高性能的Java程序,在Android开发中应用广泛。定义:强引用:通常定义的对象都是强引用,即是OOM,垃圾回收机制也不会回收。定义方式:直接定义;软引用:发生内存不足时,为了避免OOM,垃圾回收机制就会回收。定义方式:SoftReference;弱引用:在进行垃圾回收时,只要所引用的对象为null,则直接回收。定义方式:WeakReference;虚引用:也叫幽灵引用,在进行垃圾回收时,无论是否为null,都要被回收,主要用来跟踪垃圾回收过程。定义方式
  • 标签:Java 方式

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

定义:

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

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

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

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

使用场景:

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

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

class="java" name="code">import java.lang.ref.SoftReference;

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

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

?弱引用:

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

WeakReference<String> wr = new WeakReference<String>(str, rq);

?

?

上一篇: 真正的CTO,是一个懂产品的技术人 下一篇: 没有下一篇了!
发表评论
用户名: 匿名