喜糖

移动开发工程师 。涉及 android、ios、jni

导航

Weak和Soft的区别

Posted on 2012-09-20 15:00  喜糖  阅读(496)  评论(0编辑  收藏  举报

Weak引用对象与Soft引用对象的最大不同就在于:GC在进行回收时,需要通过算法检查是否回收Soft引用对象,而对于Weak引用对象,GC总是进行回收。Weak引用对象更容易、更快被GC回收。虽然,GC在运行时一定回收Weak对象,但是复杂关系的Weak对象群常常需要好几次GC的运行才能完成。Weak引用对象常常用于Map结构中,引用数据量较大的对象,一旦该对象的强引用为null时,GC能够快速地回收该对象空间。  Soft用来做缓存。Weak用来方便的找到一个引用,强引用消失,也就消失。