社区
Java SE
帖子详情
单实例回不会被 垃圾回收..
Mybeautiful
2006-12-04 11:16:30
有一个类作为单实例引用...
但这个单实例仅仅被另外一个类的 某一个方法引用。。
请问: 这个单实例是否会 被垃圾回收?
并请给出解释。
...全文
170
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没有处理
}
}
JVM
垃圾
回
收
机制 (垃圾判断,
垃圾
回
收
算法,
垃圾
回
收
器,五种引用)【jvm】
本文详细介绍了Java虚拟机(JVM)中的
垃圾
回
收
机制,包括如何判断对象可
回
收、Java中的引用类型、各种
垃圾
回
收
算法及其应用场景,以及分代
垃圾
回
收
的具体实现。此外,还深入探讨了几种主流的
垃圾
回
收
器,如Serial、Parallel、Concurrent Mark Sweep(CMS)和Garbage First(G1)的工作原理。
JVM中
垃圾
回
收
本文详细介绍JVM
垃圾
回
收
机制,包括内存区域划分,如堆、方法区等;解析标记 - 清除、复制等
垃圾
回
收
算法;介绍Serial GC、Parallel GC等
垃圾
回
收
器;阐述新生代、老年代
垃圾
回
收
流程及Stop - the - World事件。还给出调优堆内存、选合适
回
收器等优化策略。
一文看懂:JVM
垃圾
回
收
算法、CMS
垃圾
回
收
器、G1
垃圾
回
收
器
本文详细介绍了JVM
垃圾
回
收
机制,包括
垃圾
回
收
思想(引用计数法、可达性分析法)、
垃圾
回
收
算法(复制、标记 - 清除、标记 - 整理、分代
回
收算法)以及多种
垃圾
回
收
器(Serial、CMS、G1等),还阐述了G1的三种
回
收方式及过程。
一文整明白js中
垃圾
回
收
,
垃圾
回
收
的机制,为什么有
垃圾
回
收
本文详细介绍了JavaScript中的
垃圾
回
收
机制,包括引用计数和标记清除两种算法的工作原理及其优缺点。通过
实例
解释了
垃圾
回
收
器如何判断对象是否为垃圾,并强调了内存泄漏问题以及人为干预的重要性。
java八股-
垃圾
回
收
机制-
垃圾
回
收
算法,分代
回
收,
垃圾
回
收
器
本文详细介绍了JVM的
垃圾
回
收
机制,包括引用计数法、可达性分析算法等定位垃圾的方式,标记清除、标记整理、复制等
垃圾
回
收
算法,以及串行、并行、CMS、G1等
垃圾
回
收
器。重点分析了G1
垃圾
回
收
器的工作流程、耗时瓶颈,对比了G1和CMS的区别,并给出了二者的适用场景。
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章