java中弱引用和强信用_java中的强引用与弱引用的区别与用处

java中的强引用与弱引用的区别与用处

发布时间:2020-04-11 10:44:22

来源:亿速云

阅读:104

作者:小新

今天小编给大家分享的是java中的强引用与弱引用的区别与用处,很多人都不太了解,今天小编为了让大家更加了解java中的强引用与弱引用,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。

97141944353ea80772d80498f77703cb.png

一、强引用

我们平时new了一个对象就是强引用,例如Object obj = new Object();

即使在内存不足的情况下,JVM宁愿抛出OutOfMemory错误也不会回收这种对象。

(推荐视频教程:java视频教程)

二、软引用

如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。SoftReference softRef=new SoftReference(str); // 软引用

用处:

软引用在实际中有重要的应用,例如浏览器的后退按钮。按后退时,这个后退时显示的网页内容是重新进行请求还是从缓存中取出呢?这就要看具体的实现策略了。

(1)如果一个网页在浏览结束时就进行内容的回收,则按后退查看前面浏览过的页面时,需要重新构建。

(2)如果将浏览过的网页存储到内存中会造成内存的大量浪费,甚至会造成内存溢出。

如下代码:Browser prev = new Browser(); // 获取页面进行浏览

SoftReference sr = new SoftReference(prev); // 浏览完毕后置为软引用

if(sr.get()!=null){

rev = (Browser) sr.get(); // 还没有被回收器回收,直接获取

}else{

prev = new Browser(); // 由于内存吃紧,所以对软引用的对象回收了

sr = new SoftReference(prev); // 重新构建

}

以上就是java中的强引用与弱引用的区别与用处的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注亿速云行业资讯频道哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值