占用大量内存,但通过垃圾回收功能回收以后很容易重新创建的对象特别适合使用弱引用。
可以创建短弱引用或长弱引用:
-
Short
WeakReference 的无参数构造函数。
-
Long
WeakReference 构造函数中指定
true。Finalize 方法,应用的是短弱引用功能。弱引用只在目标被收集前有效,运行终结器后可以随时收集目标。
Target 属性返回 null,表示对象已被收集;否则,可继续使用对象,因为应用已重新获得对它的强引用。
仅在必要时使用长弱引用,因为在终结后对象的状态不可预知。
避免对小对象使用弱引用,因为指针本身可能和对象一样大,或者比对象还大。