Разница между dispose () и finalize ()

Основная разница - распоряжаться () против финализации ()
 

ключевое отличие между dispose () и finalize () dispose () должен явно вызываться программистом, в то время как finalize () вызывается сборщиком мусора перед уничтожением объекта.

Dispose () - это метод для закрытия или освобождения неуправляемых ресурсов, таких как файлы, потоки, удерживаемые объектом. Finalize - это метод для выполнения операций по очистке неуправляемых ресурсов, содержащихся в текущем объекте, до уничтожения объекта..

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что такое распоряжаться ()
3. Что такое finalize ()
4. Сходства между dispose () и finalize ()
5. Сравнение бок о бок - dispose () против finalize () в табличной форме
6. Резюме

Что такое распоряжение ()?

Одним из наиболее важных преимуществ .NET Framework является то, что он обеспечивает автоматический сбор мусора. Он автоматически освобождает память от объектов, которые не используются. В таких языках программирования, как C и C ++, программист должен самостоятельно управлять управлением памятью. Но в таких языках, как C #, который построен на .NET Framework, есть сборщик мусора. Это помогает управлять памятью. Его нельзя использовать для освобождения ресурсов неуправляемой памяти. Для выполнения этой задачи можно использовать метод dispose ()..

Метод dispose () можно использовать для освобождения ресурсов, таких как соединения с базой данных, обработчики файлов и т. Д. Этот метод не вызывается автоматически. Поэтому программист должен реализовать этот метод. Как только этот метод вызывается, память для определенного неуправляемого ресурса освобождается. Этот метод объявлен в интерфейсе IDisposeable.

Что такое финализировать ()?

Метод finalize вызывается сборщиком мусора только тогда, когда ссылка на объект больше не используется. Этот метод вызывается непосредственно перед уничтожением объекта. Этот метод реализован с помощью деструктора. Метод finalize определен в классе java.lang.object. Этот метод объявлен как защищенный. Он не объявлен как открытый, чтобы избежать доступа других классов. В целом, метод finalize может минимизировать производительность программы, поскольку он не освобождает память мгновенно.

В чем сходство между dispose () и finalize ()?

  • Оба dispose () и finalize () могут быть использованы для освобождения памяти, выделенной для неуправляемого ресурса.

В чем разница между dispose () и finalize ()?

dispose () против finalize ()

Dispose () - это метод для закрытия или освобождения неуправляемых ресурсов, таких как файлы, потоки, удерживаемые объектом.. Finalize - это метод для выполнения операций очистки неуправляемых ресурсов, удерживаемых текущим объектом, до уничтожения объекта..
 Задача
Метод dispose используется для освобождения неуправляемых ресурсов при его вызове. Метод finalize используется для освобождения неуправляемых ресурсов до уничтожения объекта..
Определенный интерфейс или класс
Dispose () определяется в интерфейсе IDisposable интерфейс. Finalize () определяется в классе java.lang.object.
 Метод вызова
Метод dispose вызывается программистом. Метод finalize вызывается сборщиком мусора.
Доступ Тендерный
Метод утилизации является публичным. Метод финализации защищен.
скорость
Метод dispose вызывается мгновенно. Метод finalize вызывается медленно.
Производительность
Утилизация не уменьшит производительность программы. Метод finalize может минимизировать производительность программы.

Резюме - распоряжаться () против финализации ()

В этой статье обсуждалась разница между методами dispose и finalize в C #. Разница между dispose () и finalize () заключается в том, что dispose () должен явно вызываться программистом, а finalize () вызывается сборщиком мусора перед уничтожением объекта..

Ссылка:

1. Реализация Завершить и утилизировать для очистки неуправляемых ресурсов. Доступна здесь  
2. Шарма, Нитья. «Назад к основам - избавьтесь от финализации». C # Уголок. Доступна здесь  

Изображение предоставлено:

1.'Charp Logo'By Andres15alvarez - собственная работа, (CC BY-SA 4.0) с помощью Commons Wikimedia