java中的强引用与弱引用的区别与用处
今天小编给大家分享的是java中的强引用与弱引用的区别与用处,很多人都不太了解,今天小编为了让大家更加了解java中的强引用与弱引用,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。
创新互联自2013年起,先为船营等服务建站,船营等地企业,进行企业商务咨询服务。为船营企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
一、强引用
我们平时new了一个对象就是强引用,例如
Object obj = new Object();
即使在内存不足的情况下,JVM宁愿抛出OutOfMemory错误也不会回收这种对象。
(推荐视频教程:java视频教程)
二、软引用
如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。
SoftReferencesoftRef=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中的强引用与弱引用的区别与用处的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注创新互联行业资讯频道哦!
名称栏目:java中的强引用与弱引用的区别与用处
文章链接:http://ybzwz.com/article/ihspii.html