强引用,软引用,弱引用的区别就在于被虚拟机回收的条件不一样
强引用,如果我们在使用这个对象的话,即使是报错,也不会回收我们的对象
软引用,如果我们使用了这个对象,那么在内存充足的情况下,这个对象基本上是不会被回收的,只有当内存不够的时候,我们的对象才会被回收---------------------此引用一般用在处理图片中
弱引用,弱引用的话被回收的可能性就很高,即使在内存充足的情况下也会被回收--------------------------常见的使用情况为handler,为了防止内存泄漏,所以我们一般使用的为静态handler,这个时候我们是不会引用外部的对象的,也无法引用activity了,所以我们可以通过弱引用来引用activity对象,操作完毕之后,activity对象可以被随时回收,不会造成内存泄漏
详细例子:https://www.jianshu.com/p/8488079a939b
网友评论