首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SoftReference

也就是说,一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象的强引用。...MyObject(); SoftReference aSoftRef=new SoftReference(aRef); 此时,对于这个MyObject对象,有两个引用路径,一个是来自SoftReference...所以,当软可及对象被回收之后,尽管这个SoftReference对象的get()方法返回null,但这个SoftReference对象已经不再具有存在的价值,须要一个适当的清除机制,避免大量SoftReference...SoftReference(aMyObject, queue); 那么当这个SoftReference所软引用的aMyOhject被垃圾收集器回收的同一时候,ref所强引用的SoftReference...利用这种方法,我们能够检查哪个SoftReference所软引用的对象已经被回收。于是我们能够把这些失去所软引用的对象的SoftReference对象清除掉。

25610

java softReference 详解 .

也就是说,一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象的强引用。...MyObject(); SoftReference aSoftRef=new SoftReference(aRef); 此时,对于这个MyObject对象,有两个引用路径,一个是来自SoftReference...所以,当软可及对象被回收之后,虽然这个SoftReference对象的get()方法返回null,但这个SoftReference对象已经不再具有存在的价值,需要一个适当的清除机制,避免大量SoftReference...SoftReference(aMyObject, queue); 那么当这个SoftReference所软引用的aMyOhject被垃圾收集器回收的同时,ref所强引用的SoftReference...利用这个方法,我们可以检查哪个SoftReference所软引用的对象已经被回收。于是我们可以把这些失去所软引用的对象的SoftReference对象清除掉。

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android--SoftReference缓存图片

    Java中的SoftReference即对象的软引用。如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。...SoftReference的特点是它的一个实例保存对一个Java对象的软引用,该软引用的存在不妨碍垃圾收集线程对该Java对象的回收。...也就是说,一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象的强引用。...另外,一旦垃圾线程回收该Java对象之后,get()方法将返回null 用Map集合缓存软引用的Bitmap对象 Map> imageCache...(InputStream); //软引用的Bitmap对象 SoftReference bitmapcache = new SoftReference(bitmap);

    97520

    java softreference_Java引用总结–StrongReference、SoftReference、WeakReference、PhantomReference…

    Java引用总结–StrongReference、SoftReference、WeakReference、PhantomReference 1 Java引用介绍 Java从1.2版本开始引入了4种引用,...⑵软引用(SoftReference) 如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。...3.2 软引用 实例代码: packagecom.skywang.java;importjava.lang.ref.SoftReference;public classSoftReferenceTest...{public static voidmain(String[] args) { SoftReference ref= new SoftReference(newMyDate()); ReferenceTest.drainMemory...软引用被禁止时, SoftReference ref = new SoftReference(new MyDate()); ReferenceTest.drainMemory(); 等价于 MyDate

    29430

    你不可不知的 Java 引用类型之 - SoftReference 源码详解

    定义 SoftReference是软引用,其引用的对象在内存不足的时候会被回收。只有软引用指向的对象称为软可达(softly-reachable)对象。...一般而言,SoftReference对象会在垃圾回收器回收其内部referent后,才会被放入其注册的引用队列中(如果创建时注册了的话)。...SoftReference源码 public class SoftReference extends Reference { /** * 由垃圾回收器负责更新的时间戳...SoftReference类有两个构造函数,一个是不传引用队列,一个传引用队列。...如果GC之后,堆的可用空间还很大的话,SoftReference对象可以长时间的在堆中而不被回收。反之,如果GC之后,只剩下很少的内存可用,那么SoftReference对象便会很快进行回收。

    89330

    Java的四种引用方式

    所以,当软可及对象被回收之后,虽然这个SoftReference对象的get()方法返回null,但这个SoftReference对象已经不再具有存在的价值,需要一个适当的清除机制,避免大量SoftReference...ReferenceQueue(); SoftReference ref=new SoftReference(aMyObject, queue); 那么当这个SoftReference所软引用的...利用这个方法,我们可以检查哪个SoftReference所软引用的对象已经被回收。于是我们可以把这些失去所软引用的对象的SoftReference对象清除掉。...所以,当软可及对象被回收之后,虽然这个SoftReference对象的get()方法返回null,但这个SoftReference对象已经不再具有存在的价值,需要一个适当的清除机制,避免大量SoftReference...利用这个方法,我们可以检查哪个SoftReference所软引用的对象已经被回收。于是我们可以把这些失去所软引用的对象的SoftReference对象清除掉。

    47920

    Java 的强引用、弱引用、软引用、虚引用

    软引用: 非必须引用,内存溢出之前进行回收,可以通过以下代码实现 Object obj = new Object(); SoftReference sf = new SoftReference...也就是说,一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象的强引用。...所以,当软可及对象被回收之后,虽然这个SoftReference对象的get()方法返回null,但这个SoftReference对象已经不再具有存在的价值,需要一个适当的清除机制,避免大量SoftReference...ReferenceQueue(); SoftReference ref=new SoftReference(aMyObject, queue); 那么当这个SoftReference所软引用的aMyOhject...利用这个方法,我们可以检查哪个SoftReference所软引用的对象已经被回收。于是我们可以把这些失去所软引用的对象的SoftReference对象清除掉。

    1.6K10

    java的四种引用类型

    也就是说,一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象的强引用。...看下面代码: MyObject aRef = new MyObject(); SoftReference aSoftRef=new SoftReference(aRef);  此时,对于这个...所以,当软可及对象被回收之后,虽然这个SoftReference对象的get()方法返回null,但这个SoftReference对象已经不再具有存在的价值,需要一个适当的清除机制,避免大量SoftReference...ReferenceQueue(); SoftReference ref=new SoftReference(aMyObject, queue);  那么当这个SoftReference所软引用的aMyOhject...利用这个方法,我们可以检查哪个SoftReference所软引用的对象已经被回收。于是我们可以把这些失去所软引用的对象的SoftReference对象清除掉。

    63550
    领券