java中软引用是什么?怎么用?

2026-01-29 0 18,676

java.png

本教程操作环境:windows7系统、java10版,DELL G3电脑

1.概念

软引用是用来描述一些还有用,但非必须的对象。只被软引用关联着的对象,在系统将要发生内存溢出异常前,会把这些对象列进回收范围之中进行第二次回收,如果这次回收还没有足够的内存,才会抛出内存溢出异常

2.应用场景

软引用通常用来实现内存敏感的缓存。如果还有空闲内存,就可以暂时保留缓存,当内存不足时清理掉,这样就保证了使用缓存的同时,不会耗尽内存。

3.实例

byte[] data = new byte[1*1024*1024];
ReferenceQueue referenceQueue = new ReferenceQueue<>();
SoftReference softReference = new SoftReference<>(data,referenceQueue);
data = null;
System.out.println("before:"+softReference.get());
 
try {
    for (int i = 0; i < 10; i++) {
        byte[] temp = new byte[3*1024*1024];
        System.out.println("processing:"+softReference.get());
    }
} catch (Throwable t) {
    System.out.println("after:"+softReference.get());
    t.printStackTrace();
}
while(referenceQueue.poll()!=null){
    System.out.println("self:"+softReference);
    softReference.clear();
    softReference = null;
    System.out.println("last:"+softReference);
}
VM options:-Xms5m -Xmx5m -XX:+PrintGC

以上就是java中软引用的使用方法,相信很多小伙伴都急着需要释放内存的方法,能够在内存将满时自动去掉不必要的数据。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:以上部本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。投诉邮箱:3758217903@qq.com

ZhiUp资源网 java教程 java中软引用是什么?怎么用? https://www.zhiup.top/11182.html

相关

© 2025 ZhiUP资源网- 本站资源均为网友投稿互联网收集整理而来,与产品相关信息的真实性准确性均由发布单位及个人负责, 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论,请大家仔细辨认!并不代表本站观点,本站对此不承担任何相关法律责任!若您认为本站发布的内容若侵犯到您的权益,请联系站长邮箱: 3758217903@qq.com 进行删除处理。 网站地图 渝ICP备2025071528号-1