сборка мусора Java из-за ссылки на несколько объектов - PullRequest
0 голосов
/ 23 мая 2011

Сможет ли 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 Ответ

4 голосов
/ 23 мая 2011

Нет, они говорят глупости. Предполагая, что в run() нет ничего, что где-то хранит ссылку, автомобиль может быть собран для мусора после оператора c2.run(); в use_the_car.

Java - это , а не подсчитанная ссылка - даже циклические ссылки не являются проблемой (например, когда Car и Driver имеют ссылку друг на друга, но ничто не имеет ссылки ни на одну из их).

Возможно, человек, с которым вы разговаривали, думал о немного другой ситуации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...