Финализация

Финализация

Финализа́тор в объектно-ориентированных языках программирования, использующих механизм сборки мусора, — специальный метод, вызываемый средой исполнения перед удалением объекта сборщиком мусора.

Определение

Финализатор — это метод класса, который автоматически вызывается средой исполнения в промежутке времени между моментом, когда объект этого класса опознаётся сборщиком мусора как неиспользуемый, и моментом удаления объекта (освобождения занимаемой им памяти). Финализатор для конкретного объекта всегда выполняется после того, как программа прекращает использовать данный объект и до того, как занимаемая объектом память будет освобождена. Удобно считать, что финализатор вызывается непосредственно перед удалением объекта из памяти, хотя это обычно не гарантируется.

Использование

Внешне финализатор схож с деструктором класса, однако в действительности эффект действия и область применения этих методов существенно различаются. Различие вызвано тем, что момент вызова финализатора, в отличие от деструктора, не определён жёстко.

В то время как деструкторы очень часто используются для освобождения занятых объектом дефицитных системных ресурсов (таких как доступ к файлу или к аппаратному обеспечению), финализаторы использовать подобным образом обычно не рекомендуется. Безусловно, финализатор может закрывать файл или сообщать операционной системе, что устройство более не используется, однако это будет плохим решением. Проблема в том, что от момента прекращения использования объекта до момента вызова финализатора может пройти неопределённое количество времени, и всё это время занятые объектом ресурсы не будут использоваться, но будут оставаться занятыми.

Вследствие сказанного применение финализаторов гораздо более ограниченно. Обычно они применяются для освобождения малоценных ресурсов, а также для того, чтобы сигнализировать о готовности объекта к удалению. Для освобождения ресурсов в языках со сборкой мусора используется шаблон проектирования «dispose». Язык программирования C# поддерживает шаблон «dispose» неявно через интерфейс IDisposable и ключевое слово using.

Примеры

Создаваться финализаторы могут по-разному. В некоторых языках финализатор является частью стандартной библиотеки. Обычно в таких случаях он является виртуальным методом стандартного корневого класса, потомками которого являются все остальные классы в системе (в C# синтаксис объявления финализатора позаимствован от деструкторов C++ — финализатором для класса C становится метод с сигнатурой ~C(). В языке


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Финализация" в других словарях:

  • финализация — сущ., кол во синонимов: 6 • доведение до конца (3) • доработка (6) • завершение (30) …   Словарь синонимов

  • ФИНАЛИЗАЦИЯ НАУКИ — (от лат. finis конец, завершение) англ. finalization of science; нем. Finalisierung der Wissenschaft. Концепция, объясняющая механизмы соц. детерминации научного познания тем, что в процессе финализации внешние для той или иной науки цели… …   Энциклопедия социологии

  • ФИНАЛИЗАЦИЯ НАУКИ — (от лат. finis конец, завершение) англ. finalization of science; нем. Finalisierung der Wissenschaft. Концепция, объясняющая механизмы соц. детерминации научного познания тем, что в процессе финализации внешние для той или иной науки цели… …   Толковый словарь по социологии

  • ФИНАЛИЗАЦИЯ НАУКИ — концепция, разработанная группой нем. философов и социологов (так называемая Штарнбергская группа Г. Бёме, В. ван ден Дэле, В. Крон, В. Шефер, Р. Холфельд, Т. Шпенглер; группа существовала с начала 70 х годов до 1981) для объяснения механизмов… …   Современная западная философия. Энциклопедический словарь

  • Паскаль (язык программирования) — Эта статья или раздел нуждается в переработке. В Паскале нет модулей, ООП и прочих новомодных веяний. Описание расширений должно присутствовать только в статьях о соответ …   Википедия

  • DVD-RAM — Работа с оптическими дисками Оптический диск Образ оптического диска, ISO образ Эмулятор оптических дисководов Программное обеспечение для работы с файловыми системами оптических дисков …   Википедия

  • Сравнение C Sharp и Java — Правильный заголовок этой статьи  Сравнение C# и Java. Он показан некорректно из за технических ограничений. Сравнения языков программирования Общее сравнение Основной синтаксис Основные инструкции Массивы Ассоциативные массивы Операции со… …   Википедия

  • Small CD-Writer — Small CD Writer …   Википедия

  • Паскаль (язык) — Pascal Семантика: процедурный Тип исполнения: компилятор Появился в: 1970 г. Автор(ы): Никлаус Вирт Паскаль (англ. Pascal) высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко… …   Википедия

  • доработка — доводка, доделка Словарь русских синонимов. доработка сущ., кол во синонимов: 6 • доводка (9) • доделка …   Словарь синонимов


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»