一文秒懂强引用,软引用、弱引用、虚引用!
创作时间:
作者:
@小白创作中心
一文秒懂强引用,软引用、弱引用、虚引用!
引用
CSDN
1.
https://blog.csdn.net/qq_56158663/article/details/146160391
在Java中,对象的引用类型不仅仅是简单的指针,它们还决定了对象的生命周期和垃圾回收的时机。本文将深入讲解四种引用类型:强引用、软引用、弱引用和虚引用,帮助你更好地理解Java的内存管理和垃圾回收机制。
一、 强引用 💪
意义:你
new
出来的对象,只要有变量指向它,它就死不了。 💀 GC 绝对不会回收它。
特点:
- 最常见的引用类型。
- 只要有强引用指向一个对象,该对象就不会被垃圾回收器回收。
- 即使内存不足,JVM 宁愿抛出
OutOfMemoryError
(OOM) 💥 异常,也不会回收强引用指向的对象。
代码示例:
public class StrongReferenceExample {
public static void main(String[] args) {
// 创建一个对象,并用强引用指向它
Object obj = new Object();
Object strongRef = obj;
// 此时,obj和strongRef都指向同一个对象
System.out.println(obj);
System.out.println(strongRef);
// 将obj置为null,但strongRef仍然指向该对象
obj = null;
System.gc(); // 建议JVM进行垃圾回收,但不保证立即执行
// 即使obj为null,strongRef指向的对象仍然存在,不会被回收
System.out.println(strongRef); // 仍然能打印出对象
// 只有当strongRef也置为null时,该对象才有可能被回收
strongRef = null;
System.gc();
}
}
解释:
Object obj = new Object();
创建了一个新的
Object
对象,并用强引用
obj
指向它。
Object strongRef = obj;
又创建了一个强引用
strongRef
,也指向同一个对象。
- 即使
obj = null;
,
strongRef
仍然指向该对象,所以该对象不会被回收。 - 只有当
strongRef = null;
,并且 GC 执行时,该对象才有可能被回收。
二、 软引用 ☁️
意义:对象还有用,但也不是非要不可。 🤷 内存够用的时候,留着它;内存不够用的时候,就回收它。
特点:
- 比强引用弱一些的引用类型。
- 只有当 JVM 认为内存不足时,才会回收软引用指向的对象。
- 通常用于实现缓存。 📦
代码示例:
import java.lang.ref.SoftReference;
public class SoftReferenceExample {
public static void main(String[] args) {
// 创建一个对象
Object obj = new Object();
// 创建一个软引用指向该对象
SoftReference<Object> softRef = new SoftReference<>(obj);
// 将obj置为null,断开强引用
obj = null;
// 从软引用中获取对象
Object retrievedObj = softRef.get();
System.out.println("Before GC: " + retrievedObj);
// 尝试进行垃圾回收
System.gc();
// 再次从软引用中获取对象
retrievedObj = softRef.get();
System.out.println("After GC: " + retrievedObj);
// 模拟内存不足的情况
try {
byte[] b = new byte[1024 * 1024 * 700]; // 700MB
} catch (OutOfMemoryError e) {
System.out.println("OOM occurred");
}
// 再次尝试获取对象
retrievedObj = softRef.get();
System.out.println("After OOM: " + retrievedObj);
}
}
解释:
SoftReference
热门推荐
2025山东春晚:土洋结合展新颜,豪华阵容迎新春
曾在中国行窃的「二球」,用一首说唱赚了9500万
结婚后别忘更新户口本,关系购房贷款等大事
早餐前60分钟服用最佳,优甲乐服用指南
左旋甲状腺素钠片使用指南:服用方法、注意事项与副作用
百里玄策实战攻略:两种出装流派与团战技巧详解
从事采购工作的职业前景如何?
酸甜排骨(简易版)
金牌酸甜诱惑:绝味糖醋排骨
酸甜排骨(家常做法,外酥里嫩)
刘友章教授教你解读舌苔裂痕
裂纹舌:8.8%的人都有的“小秘密”
冬季养生,中医破解裂纹舌难题
四川攀枝花及周边地区全方位旅游指南
攀枝花最美景区双探:入冬三日游攻略
工程项目财务管理全攻略:从预算控制到绩效评估
重疾险全面覆盖心梗脑梗,专家解析投保关键
脑梗医保报销比例70%,起付线和材料要求全解析
采购工程师培训:提升核心技能,助力职业发展
岩手县“雁月”:蒸面糊的美味传承
专家详解脑梗昏迷医疗赔偿:五大项目构成与申请要点
猪蹄黄豆海带汤:美容养颜滋补汤,孕妇也能喝
海带黄豆炖猪蹄:12步做出营养滋补的传统美食
王者荣耀十大经典CP:历史与皮肤里的浪漫故事
云南生态环境保护交出亮眼成绩单:空气质量优于全国30%
内脏脂肪与认知衰退关系获证实,每增0.27公斤认知老化0.7年
脂肪衰减正常值无固定标准,过度衰减或致多重健康风险
脂肪衰减正常值无固定标准,过度衰减或致多重健康风险
有氧力量结合,科学补充蛋白:减脂增肌新方案
<一路繁花>冲突背后:当70后遇上50后,如何跨越代沟