пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Сборка мусора.

Так как объекты создаются динамически с помощью операции new, то желательно знать механизм ликвидации объектов и способ освобождения памяти для более позднего перераспределения. Java автоматически выполняет освобождение памяти, занимаемой объектом, с помощью механизма “сборки мусора”. Когда никаких ссылок на объект не существует, то есть все ссылки на него вышли из области видимости программы, предполагается, что объект больше не нужен, и память, занятая объектом, может быть освобождена. “Сборка мусора” происходит нерегулярно во время выполнения программы. Форсировать “сборку мусора” невозможно, можно лишь “рекомендовать” ее выполнить вызовом метода gc(), но виртуальная машина выполнит очистку памяти тогда, когда сама посчитает это удобным.
Иногда объекту нужно выполнять некоторые действия перед освобождением памяти. Например, освободить внешние ресурсы. Для обработки таких ситуаций используется механизм finalization. Чтобы использовать finalization, необходимо определить метод finalize(). Виртуальная машина вызывает этот метод всегда, когда она собирается уничтожить объект данного класса. Внутри метода finalize() нужно определить действия, которые должны быть выполнены до уничтожения объекта. Непосредственно перед освобождением памяти для объекта вызывается метод finalize().
Метод finalize() имеет следующую сигнатуру:

protected void finalize(){

// код завершения

}

Ключевое слово protected запрещает доступ к finalize() кодам, определенным вне этого класса. Метод finalize() вызывается только перед самой “сборкой мусора”, а не тогда, когда объект выходит из области действия идентификаторов, то есть невозможно определить, когда finalize() будет выполнен. В принципе, этот метод может быть вообще не выполнен.


 


28.12.2017; 02:14
хиты: 91
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь