`
wensong
  • 浏览: 125059 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WeakReference和SoftReference总结

    博客分类:
  • Java
阅读更多

 

   今天查一个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

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics