多对象引用导致的java垃圾收集
多对象引用导致的java垃圾收集,java,garbage-collection,Java,Garbage Collection,car\u object\u 1是否可以进行垃圾收集?有人认为ascar\u object\u 1有两个参考,所以它永远不会被收集。这是真的吗 Car createACar() { Car c = new MyCar(); //car_object_1 was created return c; } void use_the_car() { Car c2 = createACar(); c2.run(); } 不,他们在胡说八道。假设run()中没有任何东西将引用隐藏在某
car\u object\u 1
是否可以进行垃圾收集?有人认为ascar\u object\u 1
有两个参考,所以它永远不会被收集。这是真的吗
Car createACar()
{
Car c = new MyCar(); //car_object_1 was created
return c;
}
void use_the_car()
{
Car c2 = createACar();
c2.run();
}
不,他们在胡说八道。假设
run()
中没有任何东西将引用隐藏在某处,则在c2.run()之后,该车有资格进行垃圾收集中的code>语句使用车
Java不是引用计数的-即使循环引用也不是问题(例如,汽车
和驾驶员
相互引用,但没有任何引用)
也许与你交谈的人所想的情况略有不同?不,他们在胡说八道。假设run()
中没有任何东西将引用隐藏在某处,则在c2.run()之后,该车有资格进行垃圾收集中的code>语句使用车
Java不是引用计数的-即使循环引用也不是问题(例如,汽车
和驾驶员
相互引用,但没有任何引用)
也许你正在与之交谈的人想到了一个稍微不同的情况?+1:任何时候都只有一个对对象的引用,在使用\u车返回后,就没有更多的引用了。(如果c2.run()
之后有一个语句,则在引用超出范围之前,它将不合格。+1:在use\u之后,任何时候都只有一个对对象的引用,car
返回后,将不再有引用。(如果c2.run()之后有一个语句)
除非参考超出范围,否则不合格。