垃圾收集器问题

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
...全文
113 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;这个对象符合吗?
已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 常见问题解答 网页打开速度慢或者打不开网页? 受到多种因素的影响,对于非会员用户我们无法提供最优质的服务。 如果您希望得到最棒的体验,请至大会员页面("右上角菜单 → 大会员")根据说明操作。 请注意:受制于国际网络的诸多不确定性,我们无法对任何服务的可靠性做出任何保证。 如果出现了网络连接相关的问题,我们建议您先等待一段时间,之后再重试。 如果您在重试后发现问题仍然存在,请联系我们,并说明网络问题持续的时间。 图片下载后无法找到? 打开"右上角菜单 → 更多 → 修改下载路径",在弹出的对话框中可以看到当前图片的保存路径。 此外,由于网络因素,在保存图片之后,等待屏幕下方出现"已保存到..."后,才能在本地找到图片。 如何更改图片保存的目录? 请参见"右上角菜单 → 更多 → 修改下载路径"。 翻页不方便? 在点进某个图片后,通过在图片上向左或向右滑动,即可翻页查看下一个作品。 如何保存原图/导出动图? 长按图片/动图,在弹出的菜单中选择保存/导出即可。 输入账号密码后出现"进行人机身份验证"? 此为pixiv登陆时的验证码,请按照要求点击方框或图片。 在pxvr中注册pixiv账号后,收到验证邮件,无法访问邮件中的验证链接? 请复制邮件中的链接,打开pxvr中的"右上角菜单 → 输入地址"进行访问。 能否自动将页面内容翻译为汉语? 很抱歉,pxvr暂不提供语言翻译服务。 图片下载类型是否可以选择? 能否批量下载/批量管理下载? 已支持批量下载多图作品中的所有原图:找到一个多图作品,进入详情页面后,点击图片进入多图浏览模式,长按任意一张图片即可看到批量下载选项。 关于上述其他功能,我们...

62,629

社区成员

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

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