Насколько я понимаю, есть два фундаментальных подхода к сборе мусора:
Оба алгоритма описываются в этой статье. По второму алгоритму автор статьи пишет:
Если я правильно понимаю, то объекты, которые необходимо удалить, переносятся в "free list". Но где, собственно, происходит удаление этих объектов? Или они явно не удаляются, а просто перезаписываются при создании новых объектов?
Насколько я понимаю, нет необходимости производить дополнительные операции по удалению объектов в памяти. JVM
будет создавать новые объекты на месте старых.
Статья о том, как производится создание и удаление объектов в C++
The delete operator does not actually delete anything. It simply returns the memory being pointed to back to the operating system. The operating system is then free to reassign that memory to another application (or to this application again later).
Думаю в java
аналогично, только там не операционная система, а jvm
. (Не совсем уверен, буду рад, если кто поправит)
Если объект перестал быть доступным по сильной ссылке (strong reference), то он может быть собран сборщиком мусора. Сборщик мусора может вызвать у этого объекта метод finalize
. Данный метод, потенциально, может восстановить объект - сделать его доступным по сильной ссылке (strong reference).
Сборщик помечает память как "свободная", какие-то дополнительные меры по очистке памяти сборщик мусора не производит.
При создании нового объекта в момент инициализации будет произведена установка всех полей в значение по умолчанию.
Если необходимо удалить секретную информацию (пароль, ключ и т.д.), то необходимо делать это самостоятельно и как можно раньше. Так как в случае дампа памяти она может стать доступна. Так же часть информации может быть скопирована в другое место кучи и очистить "старую" область будет уже невозможно.
Место в памяти перезаписывапется. Точнее помечается свободным и очищается в момент, когда коллектор это делает(сразу или после). При этом если они выжившие или старые, то копируются в нужные области.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пожалуйста, поясните инструкцию: http://jsslkeylogsourceforge
String url = "https://protaxi-bresthivelogin
Добрый день, работаю в Eclipse с ADT-для разработки мобприложения под Android, с бэкендом проблем не возникает, но при редактировании
У меня возникли вопросы насчет ConcatenatingMediaSourceМне нужно воспроизвести несколько видео и каждый раз когда заканчивается одно видео, я должен...