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。