美文网首页
Java引用

Java引用

作者: 南小先生 | 来源:发表于2018-04-12 12:34 被阅读0次

Java引用分为强引用、软引用、弱引用、虚引用。

强引用:是指在代码中普遍存在的,类似“Object obj = new Object()”这类的引用,只要强引用存在,当内存不足发生GC时,宁抛出内存溢出异常,也不会回收被强引用的对象。

软引用:是用来描述一些还有用但并非必需的对象。系统将要发生内存溢出异常之前,会把软引用关联的对象列进回收范围进行第二次回收,如果这次回收还没有足够内存,才会抛出内存溢出异常。内存够用时不会被GC。使用SoftReference类实现软引用。适合做缓存。

下例中gc之后,root.get()不为null。

软引用

弱引用:也是描述非必需对象,比软引用弱。弱引用的对象只能生存到下一次GC之前。当发生GC时,无论内存是否足够,弱引用关联的对象都会被回收。使用WeakReference类实现弱引用。可用于缓存,Java中WeakHashMap运用了弱引用。

下例中发生gc后,root.get()为null。

弱引用

虚引用:也称幽灵引用或幻影引用。对象是否有虚引用,不会对其生存时间有影响,也不能通过虚引用取得对象的实例(它的get()方法总为null)。为对象设置虚引用关联唯一的目的就是在这个对象被激励回收器回收时收到一个系统通知。下次GC时会回收虚引用的对象。使用PhantomReference类实现。

参考:

《深入理解JVM》

https://www.jianshu.com/p/7200da8b043f  

相关文章

  • JAVA四种引用(强引用,弱引用,软引用,虚引用)

    JAVA四种引用(强引用,弱引用,软引用,虚引用) [toc] 参考:Java 的强引用、弱引用、软引用、虚引用四...

  • Java的引用

    参考链接: Java到底是值传递还是引用传递 Java的四种引用方式 Java中的强引用、软引用、弱引用和虚引用 ...

  • Java基础:Java的四种引用

    在Java基础:java虚拟机(JVM)中,我们提到了Java的四种引用。包括:强引用,软引用,弱引用,虚引用。这...

  • java引用疑问

    java引用疑问 java 引用:深入分析Object.finalize方法的实现原理 - 简书Java软引用究竟...

  • Weak Reference Soft Reference Ph

    JAVA 中的引用 JAVA 中存在4种引用,由强到弱依次是强引用、软引用、弱引用、虚引用。 强引用(Strong...

  • Reference引用源码解析

    一、JAVA引用 JAVA中有四种引用,强引用、软引用、弱引用、虚引用,而这些引用在代码层次都继承了Referen...

  • Java实现的引用

    引用的分类 Java 1.2以后,除了普通的引用外,Java还定义了软引用、弱引用、虚引用等概念。 强引用:GC ...

  • Glide弱引用缓存与java的强引用、软引用、弱引用、幻象引用

    java的强引用、软引用、弱引用、幻象引用,引用队列总结 java除了原始数据类型的变量,其他所有都是引用类型。 ...

  • 面试题笔记

    Java中引用类型的区别,具体的使用场景 Java中引用类型分为四类:强引用、软引用、弱引用、虚引用。 强引用:强...

  • Java引用及其应用

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

网友评论

      本文标题:Java引用

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