• 技术文章 >Java >Java入门

    关于java中的强引用与弱引用的介绍

    王林王林2020-04-10 15:50:45转载1225

    一、强引用

    我们平时new了一个对象就是强引用,例如

    Object obj = new Object();

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

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

    二、软引用

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

    SoftReference<String> softRef=new SoftReference<String>(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中的强引用与弱引用的介绍的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除
    专题推荐:java 强引用 弱引用
    上一篇:java怎么安装环境 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • java文件不能删除文件怎么办• java怎么安装环境• java图片显示不出来怎么办• Java读linux文件名乱码的解决办法
    1/1

    PHP中文网