`

软引用SoftReference的使用

    博客分类:
  • java
阅读更多
软引用SoftReference的使用

SoftReference的主要特点就是在当内存不够的时候,GC会回收SoftReference所引用的对象。
所以,在memory sensitive的项目中将某些数据设置成SoftReference可以避免内存的溢出。

public class AC {
public static void main(String[] args) {

AC ac=new AC();
SoftReference sr=new SoftReference(ac);
List list=new ArrayList();
list.add(sr);
AC ab=(AC)((SoftReference)list.get(0)).get();
}
}

因为是SoftReference,有可能已经被GC回收了,
所以需要判断softReference.get()的返回值是否为null。如果是的话,就再重新new一个。

分享到:
评论

相关推荐

    软引用SoftReference缓存图片及异步加载

    本篇文章将深入探讨如何使用Java中的软引用(SoftReference)来缓存图片,并结合异步加载策略来实现高效的图片加载机制。 一、软引用(SoftReference)的概念与作用 软引用是Java内存管理中的一种特性,它是一种弱...

    软引用SoftReference1

    软引用SoftReference1

    SoftReference、WeakReference和PhantomRefrence分析和比较

    SoftReference(软引用) 软引用是主要用于内存敏感的高速缓存。在 JVM 报告内存不足之前会清除所有的软引用,这样以来 GC 就有可能收集软可及的对象,可能解决内存吃紧问题,避免内存溢出。什么时候会被收集取决...

    基于软引用实现的缓存,当内存不够使会自动释放缓存内容,以避免OOM

    具体实现上,可以使用Java的`java.lang.ref.SoftReference`类来创建软引用。通常,我们会创建一个软引用对象,将实际的缓存数据作为参数传入,然后将软引用对象放入一个映射结构(如HashMap)中。当需要访问缓存时,...

    Android中的软引用和弱引用

    例如,当我们加载大量图片时,为了避免内存溢出,可以使用软引用来保存图片对象,这样在内存不足时,这些图片会被自动移除,释放内存。而弱引用则更适合用于临时的、不需要长期保留的数据,如临时计算结果或中间状态...

    Java中弱引用软引用虚引用及强引用的区别Java开发Ja

    例如,在缓存系统中,使用软引用可以实现自动释放资源的缓存策略,当内存紧张时,不再使用的缓存项会被自动回收。而弱引用则常用于避免内存泄漏,确保对象在不再被程序其他部分引用时能被及时清理。 在Java开发中,...

    Java引用总结--StrongReference、SoftReference、WeakReference、PhantomRef

    软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。 弱引用(WeakReference)弱引用与软引用的区别在于:只...

    Java中的软引用弱引用和虚引用.docx

    - 文件缓存:在文件读写操作中,可以使用软引用来缓存文件内容,当内存紧张时自动释放这些缓存。 ##### 示例代码 ```java import java.lang.ref.SoftReference; public class SoftReferenceDemo { public static...

    android中软引用的使用测试

    所以开始做应用的时候并没有考虑这些,所以后来痛苦了好久,现在和大家分享一些关于让你的程序稳定程度加一成保障的做法,那就是在程序中SoftReference的使用,可能大家并没有确切的去做过这个软引用的实际使用与不...

    Java 7之基础 - 强引用、弱引用、软引用、虚引用1

    在处理大量对象或大型数据结构时,合理使用弱引用和软引用可以实现高效的缓存策略,防止内存溢出。而虚引用则常用于对象 finalize 阶段的清理工作,确保对象在被彻底回收前有机会执行必要的清理操作。 总之,Java的...

    Android 使用软引用解决listView卡顿问题

    当我们需要加载图片时,首先检查软引用是否仍然有效,如果有效则直接使用,否则异步加载新的图片并更新软引用。 这样做的好处是,即使在内存紧张时,垃圾回收器也可以回收那些不再显示在屏幕上的图片,从而降低内存...

    强应用软引用弱引用与垃圾收集的关系1

    - 软引用是Java为了平衡性能和内存使用而引入的一种引用类型。通过`java.lang.ref.SoftReference`类实现。当系统内存紧张,即将抛出`OutOfMemoryError`时,JVM才会回收持有软引用的对象。软引用常用于缓存策略,...

    Java对象的强、软、弱和虚引用1

    2. **软引用(SoftReference)**: 软引用在内存充足时不会被回收,只有当内存不足时,垃圾回收器才会回收这些对象。软引用常用于实现内存敏感的高速缓存,例如,可以缓存不经常使用但又不希望立即销毁的数据。软引用...

    Android基于SoftReference缓存图片的方法

    本文实例讲述了Android基于SoftReference...SoftReference的特点是它的一个实例保存对一个Java对象的软引用,该软引用的存在不妨碍垃圾收集线程对该Java对象的回收。也就是说,一旦SoftReference保存了对一个Java对象的

    软应用示例

    本篇将详细讲解如何利用软引用(SoftReference)来解决Android OOM问题,并探讨其工作原理以及在实际应用中的注意事项。 **软引用(SoftReference)的概念** 软引用是Java内存模型中的一种特殊引用类型,它介于强...

    Android利用软引用和弱引用避免OOM的方法

    为了优化内存使用,Java引入了不同级别的引用类型,包括强引用、软引用、弱引用和虚引用。这些引用类型帮助开发者更好地控制对象的生命周期,并在必要时协助垃圾回收机制。 1. **强引用(Strong Reference)** - ...

    深入了解JAVA 软引用

    JAVA 软引用是一种特殊的引用类型,它使用SoftReference类来创建。软引用是弱于强引用的,它们之间的主要区别在于垃圾回收器对它们的态度。强引用是垃圾回收器永远不会回收的,而软引用则是垃圾回收器在内存不足时才...

    Java中弱引用和软引用的区别以及虚引用和强引用介绍

    3. **软引用(SoftReference)** - 软引用比弱引用稍强一些,对象只有在系统内存不足时才会被回收。软引用常用于实现缓存,以便在系统需要更多内存时释放资源。 - 示例:`SoftReference<Counter> soft = new ...

    java 常见的四种引用

    当对象不再被软引用引用时,Java虚拟机会将该软引用加入到引用队列中,以便程序可以检测到对象已经被回收。 示例代码: ```java String str = new String("hello"); SoftReference<String> softRef = new ...

    拓胜技术专家教你如何深入理解Java四种引用类型

    Java中的四种引用类型是Java内存管理的重要组成部分,它们分别是强引用(StrongReference)、软引用(SoftReference)、弱引用(WeakReference)和虚引用(PhantomReference)。每种引用类型具有不同的特点和用途,...

Global site tag (gtag.js) - Google Analytics