I'm new to Java, reading Oracle tutorial. After each section, there are questions and answers, and I don't understand a sentence within one answer (see below bolded line).
I'm referring to question 2, see the bolded words. As far as I understand, an array is eligible to garbage collection, if there is no reference to the array. It does not matter, whether there is a reference to the objects held by this array, as the inner objects (within the array) have their own reference counting. Is that right? Please explain the bolded sentence.
cite from oracle tutorial: https://docs.oracle.com/javase/tutorial/java/javaOO/QandE/objects-answers.html
Question: The following code creates one array and one string object. How many references to those objects exist after the code executes? Is either object eligible for garbage collection?
String students = new String; String studentName = "Peter Smith"; students = studentName; studentName = null;
Answer: There is one reference to the students array and that array has one reference to the string Peter Smith. Neither object is eligible for garbage collection. The array students is not eligible for garbage collection because it has one reference to the object studentName even though that object has been assigned the value null. The object
studentNameis not eligible either because
studentsstill refers to it.
The array students is not eligible for garbage collection because it has one reference to the object studentName even though that object has been assigned the value null.
Yeah, that sentence is... odd. It makes no sense.
An array can be eligible for garbage collection, no matter what references it holds to other objects.
students is a reference to the array, so it's not eligible for garbage collection as long as
students remains in scope.