Ok i will first try to explain how many Objects are created...
As execution starts from MAIN....
line 05: One Object of type "Array" is Created.
line 06: Two Objects are created.. ONE: of type Dozen .. TWO: array type referenced by"dz".
line 07: Same 2 Objects (Dozen , Array ) .
/// so total 5 objects are created.
line 08: array's second index will point to same object as "d".
line 09: d is null but array's secound index is still pointing to that object.
line 10: now array's secound index is null...so that object of type Dozen and one array object referenced by local "dz" variable, both are eligible for garbage collection.
feel free to ask again if still have any issue...