testphantomreference.java
来自「疯狂Java讲义_源码(含Java设计模式CHM」· Java 代码 · 共 33 行
JAVA
33 行
import java.lang.ref.*;
/**
* Description:
* <br/>Copyright (C), 2005-2008, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class TestPhantomReference
{
public static void main(String[] args) throws Exception
{
//创建一个字符串对象
String str = new String("Struts2权威指南");
//创建一个引用队列
ReferenceQueue rq = new ReferenceQueue();
//创建一个虚引用,让此虚引用引用到"Struts2权威指南"字符串
PhantomReference pr = new PhantomReference (str , rq);
//切断str引用和"Struts2权威指南"字符串之间的引用
str = null;
//取出虚引用所引用的对象,并不能通过虚引用访问被引用的对象,所以此处输出null
System.out.println(pr.get());
//强制垃圾回收
System.gc();
System.runFinalization();
//取出引用队列中最先进入队列中引用与pr进行比较
System.out.println(rq.poll() == pr);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?