【无标题】

引用类型简介

引用类型分为强软弱虚四种类型,越往后约束越松。

强引用

强引用就是默认的引用类型,我们通常写的new Object就是强引用,只要不把栈中引用删除,堆中对应内存就不会被GC掉。

软引用

软引用一般指向图片缓存这类在内存充足时不被GC,但是内存不足时将图片缓存这类软引用清理掉,如果清理了图片缓存之后内存还是不足,就爆发OOM。

弱引用

弱引用是只要GC就会回收的对象,比如ThreadLocal这种,为了避免线程池核心线程一直存活导致ThreadLocal也一直存活进而内存泄漏,于是将ThreadLocal设置为弱引用,这样每次GC都会将ThreadLocal清理,除此之外,ThreadLocal是ThreadLocalMap的key,Map还有value存储值,这个value是强引用,那么当用完后记得手动remove清理。

虚引用

虚引用也是只要GC就会回收,但是它是与引用队列配合使用的,当某个虚引用对象被GC时,会通知引用队列,就是一个通知,这样引用队列就知道这个虚引用对象内存被回收了,比较适合堆外内存的释放,比如某块内存加上虚引用关联某堆外内存,当这块虚引用对象内存被回收时,通知引用队列释放堆外内存。

除了强引用是默认的,其它都需要显示的继承XXXReference。

相关推荐
benbenAItalk9 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
sunshine22 girl9 小时前
Java学习二 基本语法2, 算术运算符
java·学习
2601_9669496510 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin10 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_9628857210 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户10 小时前
Java锁
java·开发语言
多加点辣也没关系10 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob23310 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
ocean210311 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
零依赖极客11 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm