美文网首页程序员
Java中的四种引用

Java中的四种引用

作者: 不知名的程序员 | 来源:发表于2018-11-01 22:21 被阅读0次

引用在java中无处不在,一个对象的引用状态也影响着jvm对其的回收。这里简单介绍一下java中的四种引用。引用强度按照顺序依次减弱。

1.强引用

强引用是最常见的引用类型,平时用的最多,类似“X x = new X()” 的形式即为强引用,只要强引用存在,对象就不会被jvm回收。所以我们有时候看源码的时候会发现类似这样的代码“arr[i]=null”(在jdk集合源码常见),这样是方便jvm进行垃圾回收。

2.软引用

软引用使用SoftReference来表示。在系统将要发生内存溢出之前,将会把软引用所关联的对象列进回收范围并进行第二次回收,因为这个特性,他很适合用作系统中的简单缓存(虽然一般都会使用第三方的解决方案如redis)。

3.弱引用

弱引用使用WeakReference来表示,弱引用的对象只能存活到下一次垃圾回收之前,而不论内存是否足够。 当一个对象仅仅被weak reference指向, 而没有任何其他strong reference指向的时候, 如果GC运行, 那么这个对象就会被回收。在WeakHashMap(当一个键不再使用,会自动进行删除)与ThreadLocal都是用了弱引用

4.虚引用

虚引用也称幽灵引用,使用PhantomReference来表示。是最弱的一种引用,其get方法返回值总为null,即无法通过虚引用获得一个对象实例,设置一个对象和虚引用相关联的唯一目的就是在这个对象被垃圾回收时收到一个通知。虚引用需要和引用队列一起使用。关于虚引用的一个用处我知道的是在java中对于堆外内存的释放(具体可以看我的另一篇文章)。

参考:周志明 《深入理解java虚拟机》

相关文章

  • Android使用LeakCanary检测内存泄漏

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

  • Java中的四种引用类型

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

  • java四种引用类型

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

  • JVM虚拟机读书笔记

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

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

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

  • Java引用及其应用

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

  • Java基础:Java的四种引用

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

  • Java的引用

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

  • Android面试Java基础篇(四)

    问:Java中四种引用类型 答:四种引用类型分别为 强引用、弱引用、软引用、虚引用 强引用(StrongRefer...

  • 深入理解Java弱引用

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

网友评论

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

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