引用Reference

本文详细介绍了Java中的四种引用类型:强引用、软引用、弱引用和虚引用的特点及应用场景,并解释了引用队列的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用相关类

这里写图片描述

引用分类

强引用

  特点:只要有强引用存在,对象不会被GC,即使出现OOM;

软引用(SoftReference)

  特点:当内存不足时,被软引用指向的对象会被GC。软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。

弱引用(WeakReference)

  特点:当对象只有弱引用时,即可被GC。弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。

虚引用(PhantomReference)

  特点:相当于没有引用,不影响对象的声明周期。虚引用主要用来跟踪对象被垃圾回收器回收的活动,虚引用必须和引用队列 (ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之 关联的引用队列中。

ReferenceQueue

介绍:引用队列,用于存放Reference对象;

功能
  1. 入队:当引用可达性变化后,垃圾收集器会将Reference对象加入队列;
  2. 出队:如果存在则返回队首元素,否则返回null,用来判断对象是被GC;

Reference queues, to which registered reference objects are appended by the
garbage collector after the appropriate reachability changes are detected.

参考:

  1. https://blog.youkuaiyun.com/lyfi01/article/details/6415726
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值