社区
Java SE
帖子详情
单实例回不会被 垃圾回收..
Mybeautiful
2006-12-04 11:16:30
有一个类作为单实例引用...
但这个单实例仅仅被另外一个类的 某一个方法引用。。
请问: 这个单实例是否会 被垃圾回收?
并请给出解释。
...全文
159
6
打赏
收藏
单实例回不会被 垃圾回收..
有一个类作为单实例引用... 但这个单实例仅仅被另外一个类的 某一个方法引用。。 请问: 这个单实例是否会 被垃圾回收? 并请给出解释。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fool_leave
2006-12-04
打赏
举报
回复
会不会回收主要看这个实例是不是还有引用
A.instance.setMsg("")
A是什么?一个实例?还是静态的?
如果A是一个class,instance是一个静态变量,那么instance实际上是有引用的(定义的地方就是)
如果A是一个实例,那我觉得你的方法在编译的时候就该报错了
要不然把代码贴出来
Mybeautiful
2006-12-04
打赏
举报
回复
A是单实例
B有个方法中调用了A
A.instance.setMsg("");
没有其他地方再引用A.
fool_leave
2006-12-04
打赏
举报
回复
不明白
但这个单实例仅仅被另外一个类的 某一个方法引用。。?
具体点
Mybeautiful
2006-12-04
打赏
举报
回复
谢谢fool_leave() ,看有没有更多意见,要是大伙都没有意义就结贴了。
fool_leave
2006-12-04
打赏
举报
回复
static实例是存放在单独的空间里的
self=new SiglonTest();相当于给self定义了一个新的实例。这个实例是存放在静态空间的,其引用就是self,所以不会回收,除非self=null一下
Mybeautiful
2006-12-04
打赏
举报
回复
谢谢 fool_leave() ,经过测试,它确实是用引用,不会被GC干掉..但本身就是引用,不甚明白。。
以下是测试代码:
public class SiglonTest {
private SiglonTest(){
}
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没有处理
}
}
100家大公司java笔试题汇总
答:对象可以被
垃圾
回
收
,当对象不再被引用时。 Java异常 14. 什么是Java中的异常? 答:异常是Java中的错误处理机制,用于捕获和处理错误。 15. 在Java中,如何抛出异常? 答:使用throw关键字抛出异常。 Java...
VS2005典型
实例
大全(C#)源码
2. **.NET Framework**:理解.NET框架的基本组件,如Common Language Runtime (CLR)、类库和
垃圾
回
收
机制。 3. **VS2005 IDE使用**:如何创建、编辑、调试和管理项目。 4. **ASP.NET Web开发**:使用ASP.NET控件、...
lua-5.1中文手册
3. **
垃圾
回
收
**:Lua采用引用计数和可达性分析相结合的
垃圾
回
收
机制,确保内存的有效管理。 4. **模块系统**:Lua没有内置的模块系统,但可以通过全局变量和require函数来组织代码和导入模块。 5. **C语言接口**...
提升JVM性能:CMS
垃圾
回
收
器的优化分析与案例研究
本文介绍了CMS(Concurrent Mark-Sweep)
垃圾
回
收
器的工作原理、优缺点及常见问题,并通过具体案例分析了其优化策略。重点探讨了CMS的各个阶段,包括标记、并发清理和重标记,分析了可能导致性能瓶颈的因素如停顿...
单
例模式与
垃圾
回
收
在
单
例模式中,如果对象长久没有被使用,该对象是否会被JVM进行
垃圾
回
收
呢? 在
回
答这个问题之前得先弄懂JVM会在什么时候对对象进行
垃圾
回
收
的。 JVM如何判断一个对象需要被
回
收 JVM判断一个对象是否需要被
回
收,...
Java SE
62,627
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章