Я новичок в Java, читаю учебник Oracle. После каждого раздела есть вопросы и ответы, и я не понимаю предложения в течение одного ответа (см. Ниже выделенную строку).
Источник: https://docs.oracle.com/javase/tutorial/java/javaOO/QandE/objects-answers.html
Я имею в виду вопрос 2, см. Смелые слова. Насколько я понимаю, массив имеет право на сбор мусора, если нет ссылки на массив. Неважно, есть ли ссылка на объекты, хранящиеся в этом массиве, поскольку внутренние объекты (внутри массива) имеют свой собственный подсчет ссылок. Это правильно? Пожалуйста, объясните смелое предложение.
cite from oracle tutorial: https://docs.oracle.com/javase/tutorial/java/javaOO/QandE/objects-answers.html
Вопрос: Следующий код создает один массив и один строковый объект. Сколько ссылок на эти объекты существует после выполнения кода? Является ли либо объектом, имеющим право на сбор мусора?
String[] students = new String[10]; String studentName = "Peter Smith"; students[0] = studentName; studentName = null;
Ответ. Существует одна ссылка на массив студентов, и этот массив имеет одну ссылку на строку Peter Smith. Ни один объект не имеет права на сбор мусора. Студенты массива не имеют права на сбор мусора, поскольку имеют одну ссылку на объект studentName, хотя этому объекту было присвоено значение null. Объект
studentName
не подходит ни потому, чтоstudents[0]
все еще ссылаются на него.