Это помогает понять, что вы не имеете дело с реальными объектами, вы имеете дело с указателями или ссылками на объекты в памяти.Итак:
Object obj = new Object();
не объект, а ссылка на объект в памяти.Удалив ссылку, установив для нее значение null или заменив ее ссылкой на другой объект, старый объект удаляется ... иш.Когда запускается сборка мусора, она удаляется.Итак:
obj = null;
и
obj = new Object();
по существу удалят старый объект.То же самое относится к массиву объектов, вы имеете дело не с массивом реальных объектов, а с массивом ссылок на объекты.Таким образом, установив нулевую позицию в массиве или установив позицию для нового объекта, старый объект удаляется.Итак:
ObjArray[4] = null;
и
ObjArray[4] = new Object;
Удалит старый объект.
Редактировать: Что-то, что я забыл упомянуть, один объект в памяти может иметьнесколько ссылок на него, и пока все эти ссылки не будут удалены, объект может быть удален сборщиком мусора.
Object obj = new Object();
ObjArray[4] = obj;
obj=null;
В вышеупомянутом случае первоначально созданный объект будетне удаляется, когда для obj установлено значение null, это связано с тем, что ссылка на него все еще существует в ObjArray.Вы должны установить оба объекта obj и ObjArray [4] в null, прежде чем объект исчезнет.