学习笔记:弱引用的使用

来源:互联网 发布:淘宝网店流量是什么 编辑:程序博客网 时间:2024/06/04 18:27

弱引用的使用


如果一个类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();    }}

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

0 0