java中的引用

作者: 上官若枫 | 来源:发表于2018-08-01 20:15 被阅读17次

最近打算跳槽,读了一下极客时间的java核心技术36讲,感觉还不错,就此做个笔记(感兴趣的也可以点击购买链接http://stuq.com/a/100nJ,非广告推广)。本文所有内容,摘自https://time.geekbang.org/column/82笔记,侵删

简介

强引用:只要强引用还指向一个对象,就证明对象还活着。如果一个普通的对象,如果引用设置成null,就会被垃圾收回了,但不会立即被收回。
软引用:可以让对象豁免一些垃圾收集,只有JVM内存不足的时候,才会对其进行收回。JVM会保证在OOM之前,确保已经回收了软引用指向的对象。一般用软引用来实现内存敏感的缓存。
弱引用:不能让对象进行豁免垃圾收集,应用例子就是WeakHashMap,它和HashMap几乎一样,唯一的区别就是它的键(不是值!!!)使用WeakReference引用。当WeakHashMap的键标记为垃圾的时候,这个键对应的条目就会自动被移除。当一个对象被标记位弱可达(也就是所有引用它的都是弱引用)那么就会被垃圾收集器标记为可终结(finalizable)的。软引用和弱引用的区别就是,软引用保留时间会比较长,只有当内存不多的时候才会回收软引用的对象
幻象引用:也成为虚引用,它的唯一作用就是当其指向的对象被回收之后,自己被加入到引用队列,用作记录该引用指向的对象已被销毁。

强可达:当一个对象可以有一个或者多个线程不通过各种引用访问到的情况,就是强可达。比如:新创建一个对象,那么创建这个对象的线程对它就是强可达。
软可达:只能通过软引用才能访问时的状态
弱可达:只能通过弱引用访问时的状态
幻象可达:没有强引用,软引用还有弱引用,并且经过finalize过的就是幻象可达

相关文章

  • Weak Reference Soft Reference Ph

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

  • 面试题笔记

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

  • Java四种引用方式

    Java引用方式包括: 强引用、软引用、虚引用、弱引用 java的对象位于heap中,heap中的对象有强可及对象...

  • Java的引用

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

  • 基于堆栈内存详析 Java函数形参是传值还是引用? | C++指

    Java的引用 及 Java函数形参是传值还是引用 Java中没有指针的说法,Java中的引用就类似于C++的指针...

  • Java基础:Java的四种引用

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

  • 深入理解Java弱引用

    Java中的引用类型 Java中存在四种引用,它们由强到弱依次是:强引用、软引用、弱引用、虚引用。下面我们简单介绍...

  • Java中弱引用、软引用、虚引用及强引用的区别

    相关参考文献如下: Java中弱引用、软引用、虚引用及强引用的区别 ReferenceQueue的使用 Java ...

  • Java引用及其应用

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

  • Java引用详解

    1 Java中的四种引用 在Java中提供了四个级别的引用:强引用,软引用,弱引用和虚引用。在这四个引用类型中,只...

网友评论

    本文标题:java中的引用

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