Is this java Object eligible for garbage collection in List

The Boss objects will not be collected by the GarbageCollector because they are still referenced in the code block that you are posted. bossList is an ArrayList which has an internal array of Object thus holding references to those objects which are added to it.

I such a situation not only the references by you are considered but all referneces in all objects involved.

EDIT: Since you are returning the List in your code the objects will not be marked for garbage collection until the list is no longer referenced in your program.


ArrayList has Object[] elementData internally. When you added b to bossList ArrayList assigned elementData[0] = b. So when you assigned null to b the instance of Boss is still referenced from elementData[0] and cannot be GCed. But since ArrayList instance is referenced only from method's variable after the method returns both ArrayList and Boss instances will be eligible for GC.


Here's what really happens with your code :

Hello