An object is marked as eligible to be garbage collected when it
can no longer be accessed, which can happen when the object goes out
of scope. It can also happen when an object’s reference variable is
assigned an explicit null value or is reinitialized.