java垃圾收集由于多个对象引用

时间:2011-05-23 06:42:13

标签: java garbage-collection

car_object_1是否可以收集垃圾?有人坚持认为car_object_1有两个参考,所以它永远不会被收集。这是真的吗?

Car createACar()
{
  Car c = new MyCar(); //car_object_1 was created 
  return c;
}

void use_the_car()
{
  Car c2 = createACar();
  c2.run();

}

1 个答案:

答案 0 :(得分:4)

不,他们在胡说八道。假设在run()内没有任何东西存放某个引用的地方,那么该车在c2.run(); use_the_car语句后的Car语句后就有资格进行垃圾收集。

Java 引用计数 - 即使是循环引用也不是问题(例如,Driver和{{1}}彼此有引用,但没有任何内容引用其中任何一个)。

也许与你交谈的人在想一个稍微不同的情况?