java软引用在浏览器使用实例讲解

 更新时间:2021年04月06日 08:28:34   作者:小妮浅浅  
在本篇文章里小编给大家整理的是一篇关于java软引用在浏览器使用实例讲解内容,有兴趣的朋友们可以学习下。

1、说明

如果一个网页在浏览结束时回收内容,需要按后退查看之前浏览过的页面时重建;

如果将浏览过的网页存储在内存中,会造成大量内存浪费,甚至导致内存溢出。

2、实例

 // 获取浏览器对象进行浏览
 Browser browser = new Browser();
 // 从后台程序加载浏览页面
 BrowserPage page = browser.getPage();
 // 将浏览完毕的页面置为软引用
 SoftReference softReference = new SoftReference(page);
 
 // 回退或者再次浏览此页面时
 if(softReference.get() != null) {
 // 内存充足,还没有被回收器回收,直接获取缓存
 page = softReference.get();
 } else {
 // 内存不足,软引用的对象已经回收
 page = browser.getPage();
 // 重新构建软引用
 softReference = new SoftReference(page);
 }

 实例扩展:

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 

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软引用在浏览器使用实例讲解的文章就介绍到这了,更多相关java软引用如何在浏览器使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java IO之序列化与反序列化详解

    Java IO之序列化与反序列化详解

    这篇文章主要为大家介绍了Java IO之序列化与反序列化,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • 深入浅出讲解Java集合之Map接口

    深入浅出讲解Java集合之Map接口

    这篇文章主要介绍了深入浅出讲解Java集合之Map接口,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Java数组的初始化方法详解

    Java数组的初始化方法详解

    在Java程序开发中,数组是一个非常常用的数据类型,数组的初始化是使用数组来存储和处理数据的关键步骤之一,但是,关于Java数组的初始化,经常会让人感到迷惑,本文将详细介绍Java数组的初始化方法,帮助读者从此告别关于Java数组初始化的困惑
    2023-11-11
  • 一篇文章超详细的介绍Java继承

    一篇文章超详细的介绍Java继承

    Java中的继承是一种机制,表示为一个对象获取父对象的所有属性和行为,下面这篇文章主要给大家介绍了关于Java继承的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • Spring的异常重试框架Spring Retry简单配置操作

    Spring的异常重试框架Spring Retry简单配置操作

    这篇文章主要介绍了Spring的异常重试框架Spring Retry简单配置操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • IDEA code template配置和参数方式

    IDEA code template配置和参数方式

    这篇文章主要介绍了IDEA code template配置和参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>
    2024-01-01
  • SpringBoot实现密码安全存储的五种方式小结

    SpringBoot实现密码安全存储的五种方式小结

    项目开发中,密码安全存储是非常关键的一环,作为开发者,我们需要确保用户的密码在存储时被安全地加密,避免因数据泄露而造成严重后果,所以本文给大家介绍了SpringBoot实现密码安全存储的5种方式,需要的朋友可以参考下
    2025-03-03
  • 详解IDEA2020新建spring项目和c3p0连接池的创建和使用

    详解IDEA2020新建spring项目和c3p0连接池的创建和使用

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,本文就使用Spring实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Java判断字符串是不是数字过程解析

    Java判断字符串是不是数字过程解析

    这篇文章主要介绍了Java判断字符串是不是数字过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • java 函数的重载和重写实例代码

    java 函数的重载和重写实例代码

    本文主要介绍Java 的重载和重写,学习java的同学都知道Java的多态有多重要,这里给大家举例说明函数的重载和重写,希望能帮助有需要的小伙伴
    2016-07-07

最新评论