美文网首页
Java中的四种引用区别

Java中的四种引用区别

作者: IT枫 | 来源:发表于2021-07-19 17:38 被阅读0次

Java将引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom)4种,这四种引用强度依次逐渐减弱。
1.强引用
强引用就是指在程序代码中普遍存在的,类似

ViewRootImpl root = new ViewRootImpl();

这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。

  1. 软引用
    软引用是用来描述一些还有用但并非必需的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围之中进行第二次回收。如果这次回收还没有足够的内存,才会抛出内存溢出异常。SoftReference类来实现软引用。
SoftReference<ViewRootImpl> wrf = new SoftReference<String>(root);
  1. 弱引用
    弱引用也是用来描述非必需对象的,但是它的强度比软引用更弱一些,被弱引用关联的对象只能生存到下一次垃圾收集发生之前。当垃圾收集器工作时,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。Java提供了WeakReference类来实现弱引用。
WeakReference<ViewRootImpl> wrf = new WeakReference<String>(root);
  1. 虚引用
    虚引用也成为幽灵引用或者幻影引用,它是最弱的一种引用关系。一个对象是否有虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用来取得一个对象实例。为一个对象设置虚引用关联的唯一目的就是能在这个对象被收集器回收时收到一个系统通知。Java提供了PhantomReference类来实现虚引用。
PhantomReference<ViewRootImpl> wrf = new PhantomReference<String>(root);

相关文章

  • Java四种引用模式在Android种的应用

    Java中的引用一共有四种:强引用、软引用、弱引用 和 虚引用。下面来分别说一下这四种引用的用法及区别。 强引用(...

  • Java基础知识学习

    1、Java中有哪几种引用?它们的含义和区别是什么? Java中存在四种引用,它们分别是: 1. 强引用(Stro...

  • Java中的4种引用类型

    1、Java中有哪几种引用?它们的含义和区别是什么? 从JDK1.2开始,Java中的引用类型分为四种,分别是:①...

  • Android使用LeakCanary检测内存泄漏

    Java四种引用 在Java中,有四种不同的引用类型,分别是强引用(Strong Reference)、软引用(S...

  • Java中的四种引用类型

    一、Java中的四种引用类型 JDK 1.2 开始 Java 提供了四种引用类型,分别是强引用、软引用、弱引用、虚...

  • Java四种引用对比

    前言 面试题:Java中的软引用,弱引用在Android 是哪个的使用 目录 一:哪四种引用 二:区别在哪 三:在...

  • java四种引用类型

    java中得四种引用 Java中有四种引用类型:强引用、软引用、弱引用、虚引用 强引用我们代码中常写,如: Obj...

  • JVM虚拟机读书笔记

    Java VM Runtime Area Java中四种引用: - 强引用(Strong Reference): ...

  • RefenceQueue的源码解析,以及WeakHashMap的

    Java RefenceQueue WeakHashMap 首先介绍Java中的四种引用: 强引用:如Object...

  • Java引用及其应用

    Java 引用分类 Java 中的引用分为四种,具体如下 强引用(StrongReference)强引用是使用最普...

网友评论

      本文标题:Java中的四种引用区别

      本文链接:https://www.haomeiwen.com/subject/lzshmltx.html