当前位置:  技术问答>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

|
问题:哪一行最先唤起垃圾回收器

|
应该是s所对应的那个对象“hello”

|
这里面只有一个“hello”,我觉得gc 不会 invoke

|
gz,我每次都瞧关注,没别的意思,主思想把帖子记住,看大家怎么分析的
我过些日子也要参加scjp!!

|
在JAVA中的STRING类型是建立在一个类似“STRING 池”的东西里。如果STRING的值一样(例如“HELLO”),那末建立的变量“S,S1”都指向同一个内存段。上面的题目中的“HELLO”一直有句柄指着(最后是S3),没有被垃圾回收的东东。

|
楼上说的对,确实是这样的。
不过补充一点,当main方法结束以后,gc 就可以去回收垃圾了。
所以如果有选项的话,
应该选:after line 11

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,