面试问到的
hello1kitty
2012-09-24
在main中
string s1 = "abc"; string s2= "efg"; list.add(s1); list.add(s2); s1 = null; s2 = null; 此时然后发生一次GC,会回收掉s1,s2么? 我回答不会回收,因为此时还有指向s1、s2的,面试官脸黑了。求解答! |
|
lvwenwen
2012-09-24
应该被回收了吧
|
|
jinnianshilongnian
2012-09-25
这个很明显不会
list.add(s1); list.add(s2); list保持引用了。 |
|
RednaxelaFX
2012-09-25
不知道那位面试官原本出问题的意图是什么?…
一般猜的话楼上是正解。 |
|
lvwenwen
2012-09-25
RednaxelaFX 写道 不知道那位面试官原本出问题的意图是什么?…
一般猜的话楼上是正解。 无引用的都是空指针了。。。所以会回收 跑GC了肯定会回收 只是GC不知道什么时候会执行 |
|
hello1kitty
2012-09-26
确定空指针都会被回收么?
|
|
lvwenwen
2012-09-26
hello1kitty 写道 确定空指针都会被回收么?
跑GC了肯定会回收 |
|
bugu1986
2012-09-26
在list里有引用捏
|
|
wupuyuan
2012-10-23
lvwenwen 写道 hello1kitty 写道 确定空指针都会被回收么?
跑GC了肯定会回收 一个对象会有多个引用的。比如list的引用。 不一定就是设置null会被回收的 |
|
lvwenwen
2012-10-23
wupuyuan 写道 lvwenwen 写道 hello1kitty 写道 确定空指针都会被回收么?
跑GC了肯定会回收 一个对象会有多个引用的。比如list的引用。 不一定就是设置null会被回收的 那怎么判断是有没有引用呢 |