Удаление объекта (Java)

Модератор: Модераторы разделов

Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Удаление объекта

Сообщение MUTOgen »

Столкнулся с таким вопросом:

Есть массив объектов XXX[] a=new XXX[100];
Этот массив одно из данных класса YYY (класс XXX атке определен каким то образом).
Требуется сделать добавление в массив и удаление.

С добавлением все в порядке. Заводим счетчик как данное и шлепаем объекты.
А вот с удалением проблемы. Суть удаления в том что ищется из нужный элемент по массиву, удаляется а затем весь массив сдвигается на 1 позицию если требуется.

Все вроде бы работает но смущает такое момент: само удаление я делаю грубо говоря так: допустим в классе есть только данное String abc, то я делаю вот так a[i].abc=null. Но ведь сам объект не пересал же существовать как если бы он перестал сущ. в С++ при деструкторе. Верно? Я же просто очистил поля данных а не сам объект унитожил... И стал быть потом если после удаления я захочу создать объект на его месте, но как то не верно писать a[i]=new XXX(...). Ведь объект все еще есть... Или я что-то не понимаю? :mellow:
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: Удаление объекта

Сообщение Zeus »

Насколько я понимаю Java, присваиванием null - обнуляется ссылка. С объектом ничего не происходит.
А если на него больше нет ссылок, то сборщик мусора его когда-нибудь удалит.
Спасибо сказали: