当前位置: 技术问答>java相关
求解C
来源: 互联网 发布时间:2015-02-14
本文导语: 1. class sreejith 2. { 3. public static void main(String args[]) 4. { 5. String s="hello"; 6. String s1="hello"; 7. System.out.println(s1); 8. String s3=s1; 9. s1=null; 10. s=null; 11. } Which line the garbage collector will invoke first? | 1次,所...
1. class sreejith
2. {
3. public static void main(String args[])
4. {
5. String s="hello";
6. String s1="hello";
7. System.out.println(s1);
8. String s3=s1;
9. s1=null;
10. s=null;
11. }
Which line the garbage collector will invoke first?
|
1次,所有的String都是指向同一个内存短的,
String s="hello";
String s1="hello";
here s == s1
String s="hello";
String s1="hello";
here s == s1
|
问题:哪一行最先唤起垃圾回收器
|
应该是s所对应的那个对象“hello”
|
这里面只有一个“hello”,我觉得gc 不会 invoke
|
gz,我每次都瞧关注,没别的意思,主思想把帖子记住,看大家怎么分析的
我过些日子也要参加scjp!!
我过些日子也要参加scjp!!
|
在JAVA中的STRING类型是建立在一个类似“STRING 池”的东西里。如果STRING的值一样(例如“HELLO”),那末建立的变量“S,S1”都指向同一个内存段。上面的题目中的“HELLO”一直有句柄指着(最后是S3),没有被垃圾回收的东东。
|
楼上说的对,确实是这样的。
不过补充一点,当main方法结束以后,gc 就可以去回收垃圾了。
所以如果有选项的话,
应该选:after line 11
不过补充一点,当main方法结束以后,gc 就可以去回收垃圾了。
所以如果有选项的话,
应该选:after line 11
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。