软引用是Java中内存敏感型引用,仅在JVM内存压力大时才被回收,适用于本地缓存等场景;需配合ReferenceQueue及时清理失效引用,避免堆积。

软引用是 Java 中一种“内存敏感型”的引用类型,它让对象在内存充足时不被回收,只在 JVM 即将发生 OutOfMemoryError 前,才由垃圾收集器主动清理。它不是“一定不回收”,也不是“随时可回收”,而是一种带缓冲的、有优先级的回收策略。
软引用的核心特点
• 对象只被软引用指向时,JVM 会尽量保留它,直到内存真正吃紧
• GC 不会因为“想腾空间”就随便回收软引用对象,而是等触发了内存压力(如老年代快满)才介入
• 软引用本身是强引用(SoftReference 对象可被长期持有),但其内部 referent(被包装的对象)生命周期由内存状况决定
• 可配合 ReferenceQueue 使用,用于感知对象是否已被回收,及时清理软引用自身,避免堆积
怎么创建和使用软引用
用 java.lang.ref.SoftReference 包装目标对象即可:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~