SCJP垃圾收集的问题....

joo 2002-07-11 05:21:35
问题是:Give the code snippet blew ,how many object are eligble for
garbage collection at line 108?
100 String prduct;
101 String newProduct = new String("JCertify");
102 newProduct = new String("eMonogram");
103 product = new String("TogetherJ");
104 String temp = product;
105 product = null;
106 int i;
107 i = 1;
108 while (i != 0);
我觉得是2个,
1运行到102 newProduct = new String("eMonogram");时
101的 new String("JCertify");被收集。
2运行到105 product = null;时
103行的 new String("TogetherJ");被收集。
可是答案是1个被回收,为什么呢??


还有:-12的二进制码是多少呢
...全文
17 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nirvana0 2002-08-19
  • 打赏
  • 举报
回复
一块内存没有被任何变量引用时,它将被垃圾回收
Dickensi 2002-07-12
  • 打赏
  • 举报
回复
当然是一个!
jvm垃圾回收的机制是这样的:
当内存中分配的一块内存区域没有被任何变量引用时,它将被垃圾回收!

103分配的内存在105行还被temp引用,所以不回收!
如果加上temp = null;
则将被回收!


huangzt 2002-07-12
  • 打赏
  • 举报
回复
是一个被回收 : new String("JCertify")
String("eMonogram")被newProduct引用后,String("JCertify")被回收
而String("TogetherJ")被temp引用.

"JCertify"这些字符串的确是生成的对象,但是这种直接指定的字符串比较特别,被存放在常量池中,不般不被释放.
d_k 2002-07-12
  • 打赏
  • 举报
回复
一个就一个,new的对象没有变量指向就over了。
eyeieye 2002-07-12
  • 打赏
  • 举报
回复
明明应该是四个,String newProduct = new String("JCertify")
机器产生一个string类"JCertify",然后调用string的构造方法之一:new String(String original)

看,这不产生了一个可回收的对象
北极猩猩 2002-07-12
  • 打赏
  • 举报
回复
只有一个!
只有当对应已经没有引用时才会被收集,
而105处虽然product已经被付为null,但对象还有temp这个引用,因此不会被收集
lwfever 2002-07-12
  • 打赏
  • 举报
回复
http://personal.monline.com.cn/feyo/bbs/list.asp?boardid=19

这里有SCJP的资料
liuxing23 2002-07-11
  • 打赏
  • 举报
回复
顶楼的兄弟!
哪里能搞到scjp的资料阿!
wjmmml 2002-07-11
  • 打赏
  • 举报
回复
答案一定是一个啊,105 product = null;

这意味着product将被回收,也只有她。
把对象付给变量,在规范里面清楚的写着,只是简单的把对象指向了对象,(即内存地址),对变量重新付值,并不以为着回收对象,当两个变量引用同一个对象时,其中一个被另外付值,他原先指向的对象当染不能被回收。您明白了吗?也
javapro 2002-07-11
  • 打赏
  • 举报
回复
是2个吧,String是一个immutable类,这表明在102的地方会出现一个可以回收的对象。你能肯定答案吗?
cloudwindbase 2002-07-11
  • 打赏
  • 举报
回复
我觉得应该是运行到105行会出现一个垃圾收集.

-12的二进制补码是:0xFFFFFFF4
huangzt 2002-07-11
  • 打赏
  • 举报
回复
TogetherJ不是又被赋给temp了吗? 104

0xFFFFFFF4

62,614

社区成员

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

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