class test{
void m(){
Object obj[]=new Object[1];
Object o = new Object();
obj[0]=o;
o = null;//用不着
}
}
很常见的一个例子,说最后Object对象都没有被释放,因为obj[0]还引用这个对象。
我的疑问是,既然局部变量在方法运行完,引用会被销毁,也就是说o不用被置为null,也会堆内存的Object对象也会被回收(符合回收的条件,不一定立即GC),那同理,obj这个局部变量应该也会被销毁,它指向的堆里的Object也会被回收(符合回收的条件,不一定立即GC),这样就不会再引用到Object对象了,按理说最后Object对象应该符合被GC的条件的啊?
我知道GC可能不是立即执行!我想知道的是,是否符合被GC的条件!
望高人解答,我实在没金币了,见谅