Мои наблюдения с использованием недавнего OpenJDK показали, что только после выхода из метода любые ссылки, которые он потерял, действительно собираются. Я не ожидал этого вообще, но это то, что случилось. Извлечение этих строк кода в другой метод, который затем возвращал бы к main (), did позволял собирать экземпляр.
Я думаю, что это глупый вопрос. (РЕДАКТИРОВАТЬ: я имею в виду вопрос об экзамене! Не оскорблять подателя!) Это все в том, как вы определяете «право». В моем случае, я бы сказал, что после того, как не осталось никаких ссылок, экземпляр был приемлемый для сбора, просто он никогда не будет быть собранным до тех пор, пока метод не вернется .