Java WeakReference是一种弱引用类型,可以用来引用一个对象,但是在垃圾回收时会被自动清除。WeakReference通常用来解决内存泄漏问题,比如缓存中的对象引用。
使用WeakReference时,首先需要创建一个WeakReference对象,然后通过get()方法获取被引用的对象。当被引用的对象被垃圾回收时,get()方法会返回null。
下面是一个简单的示例代码,演示了如何使用WeakReference:
import java.lang.ref.WeakReference;
public class WeakReferenceExample {
public static void main(String[] args) {
String str = new String("Hello World");
WeakReference<String> weakRef = new WeakReference<>(str);
System.out.println("Weak reference value: " + weakRef.get());
str = null; // 清除强引用
System.gc(); // 手动触发垃圾回收
System.out.println("Weak reference value after garbage collection: " + weakRef.get());
}
}
在上面的示例中,创建了一个String对象并通过WeakReference进行引用。在清除强引用后,手动触发垃圾回收,被引用的对象会被清除,get()方法返回null。
需要注意的是,WeakReference对象不会阻止被引用对象被垃圾回收,因此在使用时需要小心处理,避免引起NullPointerException。