zhangshaoye
zhangshaoye
2015-10-13 14:29

关于java内存垃圾回收的一点疑问

  • java
  • 对象
  • 局部变量
  • 内存

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的条件!

望高人解答,我实在没金币了,见谅

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答

为你推荐