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

强引用

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

软引用

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

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

弱引用

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

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

虚引用

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

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

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

相关推荐
JH307331 分钟前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
m0_736919101 小时前
C++代码风格检查工具
开发语言·c++·算法
Coder_Boy_2 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2501_944934732 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy2 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
invicinble2 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟2 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖2 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
2301_763472463 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
TechWJ3 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto