美文网首页
强软弱虚引用如何理解

强软弱虚引用如何理解

作者: 糯米团子123 | 来源:发表于2022-07-25 18:05 被阅读0次
  1. 强引用:
    我们平时最常使用的基本对象引用,JVM不会回收强引用类型对象,即使内存不足导致OOM也不会回收。

实现一个强引用

User user = new User()
  1. 软引用:
    内存空间足够的情况下,JVM不会回收软引用对象,如果内存空间不足,那么软引用对象会被回收。
    只要JVM没有回收,软引用就可以继续被程序使用,因此可以用软引用存放一些内存敏感的缓存。只要内存足够,对象就保持永远不被回收。

实现软引用:java.lang.ref.SoftReference

SoftRenference softRenfernce = new SoftRenference(new User());
// 获取软引用对象
System.out.println(softReference.get())
  1. 弱引用:垃圾回收线程只要扫描到弱引用对象,不管内存空间是否足够,都会进行回收。
    弱引用可以用来实现一些规范化映射,如:WeakHashMap,当key或者value不再被引用时可以自动回收。

实现一个弱引用:java.lang.ref.WeakReference

WeakReference  weakReference = new WeakReference(new User());
System.out.println(weakReference.get())
  1. 虚引用:虚引用不决定对象的生命周期,如果一个对象仅持有虚引用,那么他就和没有任何引用一样,任何时候都可以被JVM回收。
    虚引用主要用来跟踪对象被垃圾回收器回收的话,虚引用必须和引用队列(ReferenceQuque)联合使用,当垃圾回收器准备回收一个对象时,如果发现他还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之前关联的引用队列。

实现一个虚引用:java.lang.ref.ReferenceQueue

// 引用队列
ReferenceQueue<User> queue = new ReferenceQueue<> ();
// 构建虚引用对象
PhantomReference phantomReference = new PhantomReference(new User());
// 获取虚引用对象
System.out.println(phantomReference .get())

ReferenceQueue(引用队列)是必须的,当对象回收时会放入其中,它最大的作用是跟中对象的回收。

相关文章

  • 强软弱虚引用如何理解

    强引用:我们平时最常使用的基本对象引用,JVM不会回收强引用类型对象,即使内存不足导致OOM也不会回收。 实现一个...

  • 强软弱虚引用

    四种引用的区别: 强引用:如果一个对象具有强引用,那垃圾回收器绝不会回收它。软引用:如果一个对象只具有软引用,则内...

  • 强软弱虚引用

    一、强引用(StrongReference) 不会回收有强引用的对象。 除了强引用,其他的引用都需要借助java....

  • 强软弱虚引用

    强引用 简介: 强引用 (Strong Reference) 特征: 只有手动赋值为 null 才会被垃圾回收线程...

  • Java强软弱虚引用

    在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及...

  • java中强软弱虚引用的理解

    引入版本 jdk1.2 为啥要引入 因为java不用手动管理内存,但正是因为如此,JVM才要更加高效的管理申请的内...

  • 深入理解Java中的引用(二)——强软弱虚引用

    深入理解Java中的引用(二)——强软弱虚引用 在上一篇文章中介绍了Java的Reference类,本篇文章介绍他...

  • 高并发编程之ThreadLocal

    强软弱虚 ThreadLocal 为什么Entry 的key 使用的是弱引用?

  • Android面试题大全-Java基础篇

    Java基础 内存泄漏的场景 强软弱虚引用分别什么区别 什么场景下使用虚引用 ClassLoader的双亲委派原理...

  • Java中的四种引用

    1.强软弱虚四种引用 1.1 强引用 执行结果: 解释:强引用是JVM的默认实现,即使内存不足会导致OOM(Out...

网友评论

      本文标题:强软弱虚引用如何理解

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