第三行生成的object在第几行执行后成为GC的对象?
答案为啥是第七行啊?
在第5行,af_arr[0] = sf。 此时系统有2个引用指向了 sf对象。
所以我们必须将2个引用都清楚,才能让GC知道这个对象是没人使用的了,可以被垃圾回收了。
所以是第7行。
- public class MyClass{
- public StringBuffer aMethod(){
- StringBuffer sf = new StringBuffer("Hello");
- StringBuffer[] sf_arr = new StringBuffer[1];
- sf_arr[0] = sf;
- sf = null;
- sf_arr[0] = null;
- return sf;
- }
- }
public class MyClass{ public StringBuffer aMethod(){ StringBuffer sf = new StringBuffer("Hello"); StringBuffer[] sf_arr = new StringBuffer[1]; sf_arr[0] = sf; sf = null; sf_arr[0] = null; return sf; } }
答案为啥是第七行啊?
在第5行,af_arr[0] = sf。 此时系统有2个引用指向了 sf对象。
所以我们必须将2个引用都清楚,才能让GC知道这个对象是没人使用的了,可以被垃圾回收了。
所以是第7行。