垃圾收集器问题

jh61520 2008-08-04 08:59:45

class CardBoard{
Short s=5;
CarBoard go(CarBoard cb){
cb=null;
return cb;
}
public static void main(String args[]){
CarBoard c1=new CarBoard();
CarBoard c2=new CarBoard();
CarBoard c3=c1.go(c2);
c1=null;
//end
}
}
请问运行到//end时有几个对象符合垃圾回收机制?


--------------------------------------------------------------------
以下内容为自动编辑的内容,并非楼主的发贴内容,此仅用于显示而已,并无任何其他特殊作用
楼主【jh61520】截止到2008-08-04 20:59:48的历史汇总数据(不包括此帖):
发帖的总数量:4 发帖的总分数:70 每贴平均分数:17
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:2 结贴的总分数:40
无满意结贴数:0 无满意结贴分:0
未结的帖子数:2 未结的总分数:30
结贴的百分比:50.00 % 结分的百分比:57.14 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主加油

取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=jh61520
...全文
94 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
clarck_913 2008-08-05
  • 打赏
  • 举报
回复
我认为就这个程序而言

当运行到end的时候所有对象都符合垃圾回收机制。

因为这段程序到这里就要结束了

所有的对象都是不会再被使用的对象了。
ZangXT 2008-08-05
  • 打赏
  • 举报
回复
同意楼上,只有一个.
CarBoard c1=new CarBoard();
CarBoard c2=new CarBoard();
c1和c2分别持有两个对象的引用.
CarBoard c3=c1.go(c2);
CarBoard go(CarBoard cb){
cb=null;
return cb;
}
注意方法调用的时候,形式参数cb和实际参数c2是两个东西,不过它们的内容相同,指向同一个对象.
在方法中让cb为null,c2不受影响,仍然指向原来的对象.返回null之后,c3为null
c1=null;
这时候c1原来引用的对象因为不存在对它的引用了,所以是可回收的.而且只有这一个可回收.
rypgood 2008-08-05
  • 打赏
  • 举报
回复
1个
首先c1.go(c2)这里,c2这个参数是一个副本,所以它被赋为null不会引起垃圾回收
而return了个null赋给c3,c3本来就没有被赋值,所以也没有引起垃圾回收
然后c1=null;本来c1被赋给了一个对象,但是这个时候c1不指向这个对象了,这样就有可能引起垃圾回收了
imasmallbird 2008-08-05
  • 打赏
  • 举报
回复
使用jdk自带的jconsole或Optimizeit,会看到GC的过程~~~
ZangXT 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 clarck_913 的回复:]
我认为就这个程序而言

当运行到end的时候所有对象都符合垃圾回收机制。

因为这段程序到这里就要结束了

所有的对象都是不会再被使用的对象了。
[/Quote]
到end的时候程序还没有结束.
ZangXT 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jh61520 的回复:]
谢谢!明白了,那么c1=null;以后c1里的Short s=5;这个对象符合吗?
[/Quote]
这个不符合,因为这是CardBoard中的数据成员,只要这个类的对象存在,它就存在.
这样说就有些乱了.在c1原来指向的CardBoard对象中有一个Short s=5这个对象,c1原来指向的对象回收的时候它肯定一起回收了.比较绕.
jh61520 2008-08-05
  • 打赏
  • 举报
回复
谢谢!明白了,那么c1=null;以后c1里的Short s=5;这个对象符合吗?
jh61520 2008-08-05
  • 打赏
  • 举报
回复
谢谢!明白了,那么c1=null;以后c1里的Short s=5;这个对象符合吗?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧