强引用、软引用、弱引用、虚引用详解

强引用

默认创建的对象都属于强引用,强引用对象只有在不被任何对象引用时才会被垃圾回收器回收。哪怕虚拟机抛出OutOfMemeoryError错误,也不会回收被引用的强引用对象。

软引用

软引用是一种相对较弱的引用类型,使用SolfReference来创建对象,当内存不足时,垃圾回收器会优先回收软引用对象,以释放内存。

软引用可以作为缓存机制来使用

弱引用

弱引用是一种更弱的引用类型,使用WeakReference来创建弱引用对象。

弱引用对象无法存活到下次垃圾回收后,在垃圾回收时,即使内存充足,弱引用对象也会被清理。

虚引用

虚引用是最弱的引用类型,使用PhantomReference来创建虚引用对象。无法通过虚引用来获取对象的实例

必须与引用队列联合使用‌。

‌用途‌:主要用于在对象被回收时获取通知,例如实现内存敏感缓存的清理机制。 ‌

相关推荐
云栖梦泽6 分钟前
易语言Windows桌面端「本地AI知识管理+办公文件批量自动化处理」双核心系统
开发语言
8***f39510 分钟前
Spring容器初始化扩展点:ApplicationContextInitializer
java·后端·spring
r_oo_ki_e_16 分钟前
java22--常用类
java·开发语言
AI小怪兽18 分钟前
轻量、实时、高精度!MIE-YOLO:面向精准农业的多尺度杂草检测新框架 | MDPI AgriEngineering 2026
开发语言·人工智能·深度学习·yolo·无人机
码农小韩18 分钟前
基于Linux的C++学习——循环
linux·c语言·开发语言·c++·算法
linweidong27 分钟前
C++ 中避免悬挂引用的企业策略有哪些?
java·jvm·c++
用户937611475816128 分钟前
并发编程三大特性
java·后端
CoderCodingNo28 分钟前
【GESP】C++五级/四级练习(双指针/数学) luogu-P1147 连续自然数和
开发语言·c++·算法
阿在在29 分钟前
Spring 系列(二):加载 BeanDefinition 的几种方式
java·后端·spring
IT=>小脑虎29 分钟前
PHP零基础衔接进阶知识点【详解版】
开发语言·学习·php