PDA

Просмотр полной версии : Как правильно удалять объект из памяти? Память очищать?



IIStan
24.01.2004, 17:38
Подскажите, как правильно очищать память после объекта.

Т.е я хочу удалить объект из памяти. Что для этого нужно делать?

Достаточно присвоить объекту значение null? Или нет?

henson
24.01.2004, 17:54
Память освободится, когда этого захочет сборщик мусора виртуальной машины Java. Чтобы облегчить ему жизнь достаточно присвоить null
Причем лучше это делать даже тогда, когда повторно создается объект типа так:

Image im=new Image(...);
....
im=null;
...
im=new Image(...);

IIStan
24.01.2004, 22:11
О, нет! Ты не прав. В виртуальной машине java 2 me НЕТ АВТОМАТИЧЕСКОГО сборщика мусора. Это очень большое отличие j2me от обычной java.

В общем-то, я разобрался с этим вопросом:

Действительно, присваеваешь объекту значение null.

А потом, когда это нужно и удобно вызываешь сборщик мусора. System.gc();

Именно когда удобно, потому что это довольно ресурсоёмкая операция. И если ты вызовешь GC, скажем, во время игры, то у тебя игра на мгновение притормозит.

henson
24.01.2004, 23:45
IIStan
Есть, срабатывает, когда память кончается.

IIStan
25.01.2004, 00:31
Вперые слышу. Ты уверен?
Ты не знаешь, где об этом можно почитать?

henson
25.01.2004, 11:55
А как еще это может работать? Заранее на всё памяти точно не хватит. В какой-то момент, когда она кончается, сборщик мусора оптом убирает место за неиспользуемыми объектами.

P.S. Если есть возможность спрашивайте здесь: http://unteh42.valuehost.ru/modules/newbb/viewforum.php?forum=2 там бываю чаще