四种引用 - 弱引用
弱引用引用的对象,在JVM进行GC时,会进行回收。
下面进行一下测试。
1.创建测试代码
执行代码,控制台输入show,打印出对象。
package com.jarvis.reference;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.ref.WeakReference;
/**
* @author jinzhaopo
* @date 2023-12-21 17:12
*/
public class WeakReferenceTest {
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
private static class User {
private String name;
}
public static void main(String[] args) throws IOException {
User user = new User("jzp");
WeakReference<User> weakReference = new WeakReference<User>(user);
user = null;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String line = bufferedReader.readLine();
if ("show".equals(line)) {
System.out.println(weakReference.get());
} else if ("exit".equals(line)) {
break;
}
}
}
}
2.通过jconsole打开控制台,执行GC
3.控制台输入show
再返回控制台输入,show,控制台输入null