WeakReference跟SoftReference总结

WeakReference和SoftReference总结?? ?今天查一个ClassLoader卸载问题,涉及到SoftReference和WeakReferenc

WeakReference和SoftReference总结

?

? ?今天查一个ClassLoader卸载问题,涉及到SoftReference和WeakReference,之前只知道大概的区别,没有什么总结,今天抽时间总结一下。

?

    WeakReference
      触发回收条件引用的对象不再被其他对象引用回收方式系统GC即可使用场景适用于做这种缓存:缓存的key一旦失去了其他的引用,缓存里的东西就可以随时消失。

      ?

        SoftReference

        ?

          触发回收的条件引用对象不再被其他对象引用JVM Heap内存不足 || 超过一定时间,没被使用(get)(这个时间和JVM的空闲内存空间以及设置的XX:SoftRefLRUPolicyMSPerMB?有关系)回收方式先清空SoftReference引用对象下一轮GC时回收使用场景适用于做这种缓存:只要内存足够,就可以尽可能的存活,即使它的key已经没有其他对象的引用。

          参考文档:http://www.oracle.com/technetwork/java/hotspotfaq-138619.html