有一个类作为单实例引用...但这个单实例仅仅被另外一个类的 某一个方法引用。。
请问: 这个单实例是否会 被垃圾回收? 并请给出解释。
请问: 这个单实例是否会 被垃圾回收? 并请给出解释。
解决方案 »
- java获取文件后缀名
- 一道比较简单的笔试题“捞鱼”
- 编写的记事本,但是不知道如何设置换行,只能写成一行,除非用回车键,恳请帮帮我。
- 高手:留步。请问java开发的Application中,像eclipse一样,不管是不是焦点,都能使用快捷键,实现原理机制是怎么怎么样的?谢谢。
- JMF播放器怎么播网络歌曲?
- FileDialog怎么打开txt文件在JTextArea显示,再保存
- 如何校验两个文件是否一致?
- HP-UX下,File类的getName()为何方法无法识别反斜杠"\\"分隔的路径?
- 给我一个排序的例子!
- 好心人贴个jbuilder3.5的序列号上来吧,敲键盘敲的我快晕死了。
- 在swt中,table 只让有记录的行,才显示单元格,该如何实现啊???
- 50分请教如何让程序在后台运行(以任务栏右下角的图标方式运行)
A.instance.setMsg("");
没有其他地方再引用A.
A.instance.setMsg("")
A是什么?一个实例?还是静态的?
如果A是一个class,instance是一个静态变量,那么instance实际上是有引用的(定义的地方就是)
如果A是一个实例,那我觉得你的方法在编译的时候就该报错了要不然把代码贴出来
}
private static SiglonTest self;
public static SiglonTest instence(){
if (self==null)
self=new SiglonTest();
return self;
}
private String msg="initial";
public String getMsg(){
return msg;
} public void setMsg() {
msg="change";
}
}public class GcTestSiglon {
public void test() {
SiglonTest.instence().setMsg();
} public void testget() {
System.out.println(SiglonTest.instence().getMsg());
} public static void main(String argv[]) {
GcTestSiglon gct = new GcTestSiglon();
gct.test();
try {
Thread.sleep(1000000); \\slpee 1000 秒,等GC处理
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
gct.testget(); //事实证明,GC没有处理 }
}
self=new SiglonTest();相当于给self定义了一个新的实例。这个实例是存放在静态空间的,其引用就是self,所以不会回收,除非self=null一下