介绍
强引用:引用的对象不会被Java虚拟机强制回收。平时绝大部分对象引用是强引用。
弱引用:在垃圾回收时,弱引用的对象会被Java虚拟机强制回收。
Java API中关于几种引用的类:
https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/lang/ref/Reference.html
java.lang.ref.Reference源代码罗列的全:
代码示例:
package com.thb;
import java.lang.ref.WeakReference;
import java.util.Date;
public class Test1 {
public static void main(String[] args) {
// 这是强引用
Date date = new Date(System.currentTimeMillis());
// 这是弱引用
WeakReference<Date> weakDate = new WeakReference<Date>(new Date(System.currentTimeMillis()));
System.out.println("weak refernce: " + weakDate.get());
System.gc();
System.out.println("after gc, weak reference: " + weakDate.get());
}
}
运行结果: