0 голосов
 
1586 просмотров
8.09.2016 / 13:15  Aladdin

Чем можно заменить указатели на Java?

Все знают что на ява нет указателей, есть ссылки на объекты (неделю назад узнал). Чтобы удалить объект с памяти следует удалить ссылки на него, т.е. присвоить null и после этого если на объект не осталось ссылок вм его удалит с памяти. А что если было создано огромное количество неявных ссылок на объект, которые фиг знает как найти, и при этом ты не можешь его удалить с памяти, System.gc() не поможет, что тогда делать?
Ответы
 
1 голос
 
# 8.09.2016 / 13:24  aNNiMON
Сборщик мусора как раз поможет.

Присвоив null, нет гарантии, что память, занимаемая объектом сразу очистится, это уже сборщик сам решает.
 
0 голосов
 
# 8.09.2016 / 20:21  Aladdin
Да. Теперь начинаю понимать почему на ява так мало крутых проектов.
 
0 голосов
 
# 8.09.2016 / 20:19  Arigato
Проблему «огромного количества неявных ссылок на объект, которые фиг знает как найти» решает хороший дизайн либо использование слабых или мягких ссылок (WeakReference, SoftReference). Но это уже зависит от контекста.
 
0 голосов
 
# 8.09.2016 / 19:06  Naik
Ничего не сделаешь, такой ЯП. Приходится следить за ссылками, причем всегда будут утечки все равно. Любое большое приложение на Java со временем занимает все больше и больше ОЗУ..
Всего: 4

Реклама

Мы в соцсетях

tw tg yt gt