SoftReference使用心得

来源:互联网 发布:oracle sql top用法 编辑:程序博客网 时间:2024/06/04 19:50

 SoftReference的特点是它的一个实例保存对一个Java对象的软引用,该软引用的存在不妨碍垃圾收集线程对该Java对象的回收。也就是说,一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象的强引用。另外,一旦垃圾线程回收该Java对象之后,get()方法将返回null。

软可及对象的清理是由垃圾收集线程根据其特定算法按照内存需求决定的。

垃圾收集线程会在虚拟机抛出OutOfMemoryError之前回收软可及对象,而且虚拟机会尽可能优先回收长时间闲置不用的软可及对象,对那些刚刚构建的或刚刚使用过的“新”软可反对象会被虚拟机尽可能保留

在回收这些对象之前,我们可以通过 get()方法重新获得对该实例的强引用。而回收之后,调用get()方法就只能得到null了。

-----------------------------------------------------------分割线---------------------------------------------------------------------

SoftReference 软引用,起到相当于缓存的作用,把对象放到软引用中后,如果后续还要使用这个对象时可以直接到这里拿

当JVM运行内存不够时会运行垃圾收集线程回收SoftReference 中的对象


0 0
原创粉丝点击