• 技术文章 >java >java基础

    java基础:虚引用如何使用?

    小妮浅浅小妮浅浅2020-12-23 10:46:38原创3278

    我们讲过这么多的引用,还有一个引用大家平时可能接触不到,那就是虚引用。基本上没有什么引用,还经常会被回收,使用的时候需要结合队列。有的小伙伴就说,那它有什么用处呢?不着急,我们一起先来学习下虚引用的概念、应用场景,通过代码示例体会它的作用。

    1.概念

    虚引用是所有类型中最弱的一个。一个持有虚引用的对象,和没有引用几乎是一样的,随时可能被垃圾回收器回收。当试图通过虚引用的get()方法取得强引用时,总是会失败。并且,虚引用必须和引用队列一起使用,它的作用在于跟踪垃圾回收过程。

    2.应用场景

    可以用来跟踪对象被垃圾回收器回收的活动,当一个虚引用关联的对象被垃圾回收器回收之前会收到一条系统通知。

    3.实例

    Tracker(String path, FileDeleteStrategy deleteStrategy, Object marker, ReferenceQueue<? super Object> queue) {
        //marker是具体的虚引用对象
        super(marker, queue);
        this.path = path;
        this.deleteStrategy = deleteStrategy == null ? FileDeleteStrategy.NORMAL : deleteStrategy;
    }

    4.总结

    强引用:从来不会被回收

    软引用:当内存不足时会被回收

    弱引用:正常垃圾回收时回收

    虚引用:任何时刻都会被垃圾回收器回收

    本篇关于虚引用的介绍到这里就可以结束了,虽然说它没有什么引用的作用,但是用来优化一些程序还是不错的选择,这个知识点大家了解到了就行。

    专题推荐:java虚引用
    上一篇:弱引用怎样在java中回收? 下一篇:java中规则引擎是什么?有什么用?

    相关文章推荐

    • java基础:基本类型如何转换?• java中的强引用如何理解?• java继承如何访问变量?• java中软引用是什么?怎么用?• 弱引用怎样在java中回收?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网