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

强引用

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

软引用

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

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

弱引用

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

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

虚引用

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

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

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

相关推荐
2601_953824612 分钟前
基于SSM的水果超市管理系统
java·tomcat·maven
guo_wen_qiang4 分钟前
springboot如何自定义一个启动器starter
java·spring boot·intellij-idea
Lazionr6 分钟前
二叉搜索树:从树形结构到高效查找
开发语言·c++
此生决int8 分钟前
深入理解C++系列(21)——异常
开发语言·c++
许彰午8 分钟前
55-字典缓存与通知SPI
java·低代码·架构
captain37613 分钟前
HTTP(2)
java·网络·http·java-ee
徐子童14 分钟前
介绍MVCC机制
java·mysql·面试题·秋招·并发·mvcc
Wang's Blog16 分钟前
Java 项目实战: 外卖平台-启用禁用员工账号与Long精度丢失修复
java·服务器
乌暮21 分钟前
Java 抽象类与接口详解:半成品图纸 vs 能力合同
java·开发语言·后端·学习
乐观的Terry28 分钟前
ShipDesk 完整使用教程:从新建项目到 SSH 自动发布
开发语言