学习笔记:弱引用的使用

弱引用的使用


如果一个类B,可能会长期持有一个生命周期比较短的对象a的引用,

那么如果在需要回收短命对象A时候,会因为B类持有a对象的引用,而阻止a对象被回收。

这种情况会造成内存泄漏。

那么最好的解决办法就是使用弱引用


WeakReference aReference = new WeakReference(a);

++aReference就是一个弱引用++

即使B类持有aReference,也不会阻止系统对a对象的回收!


如何用弱引用使用A对象?

if (aReference != null) {
    A a = AReference.get();
    if (a != null) {
        a.doSomething();
    }
}

进行两次判断,先判断弱引用是否为空,
不为空,则从若引用中取出强引用,
在判断强引用是否为空,
不为空,则可以正常使用
这个取出的强引用最好只作为局部变量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容