社区
Java SE
帖子详情
单实例回不会被 垃圾回收..
Mybeautiful
2006-12-04 11:16:30
有一个类作为单实例引用...
但这个单实例仅仅被另外一个类的 某一个方法引用。。
请问: 这个单实例是否会 被垃圾回收?
并请给出解释。
...全文
142
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没有处理
}
}
Java的垃圾强制
回
收
一点睛 当一个对象失去引用后,...程序可以强制系统进行
垃圾
回
收
——这种强制只是通知系统进行
垃圾
回
收
,但系统是否进行
垃圾
回
收
依然不能确定。大部分时候,程序强制
垃圾
回
收
后总是有一些效果 强制系统
垃圾
回
收
有...
JVM-
垃圾
回
收
机制
垃圾
回
收
算法 到
垃圾
回
收
器
垃圾
回
收
概念1、什么是垃圾2、为什么需要GC3、早期
垃圾
回
收
4、Java
垃圾
回
收
机制
垃圾
回
收
相关算法1、标记阶段:引用计数算法2、标记阶段:可达性分析算法3、对象的finalization机制4、清除...
单
例模式与
垃圾
回
收
在
单
例模式中,如果对象长久没有被使用,该对象是否会被JVM进行
垃圾
回
收
呢? 在
回
答这个问题之前得先弄懂JVM会在什么时候对对象进行
垃圾
回
收
的。 JVM如何判断一个对象需要被
回
收 JVM判断一个对象是否需要被
回
收,...
41. 如何手动触发全量
回
收垃圾,如何立即触发
垃圾
回
收
垃圾
回
收
机制只负责
回
收堆内存的对象,
不会
回
收任何物理资源(例如数据库连接、网络IO等资源) 程序无法精确控制
垃圾
回
收
的运行,
垃圾
回
收
会在合适的时候进行。当对象永久地失去引用后,系统就会在合适的时候
回
收它...
java什么对象会被
回
收_哪些情况下的对象会被
垃圾
回
收
机制处理掉?
前言看见即降服,这句话说的是一件事物,只要你看得到,你就能得到。对我来说记录就是看见。面试题不只是为了面试,更是为了帮助...再者我们还需要知道
垃圾
回
收
机制会
回
收哪些内存区域的对象。jvm的内存区域先来看下...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章