Ключевое отличие - dispose () vs finalize ()
Ключевое различие между dispose () и finalize () заключается в том, что dispose () должен быть явно вызван программистом, в то время как finalize () вызывается сборщиком мусора перед уничтожением объекта.
Dispose () - это метод закрытия или освобождения неуправляемых ресурсов, таких как файлы и потоки, удерживаемые объектом. Finalize - это метод выполнения операций очистки неуправляемых ресурсов, удерживаемых текущим объектом, до его уничтожения.
СОДЕРЖАНИЕ
1. Обзор и ключевые различия
2. Что такое dispose ()
3. Что такое finalize ()
4. Сходства между dispose () и finalize ()
5. Сравнение бок о бок - dispose () и finalize () в табличной форме
6. Резюме
Что такое dispose ()?
Одним из наиболее важных преимуществ. NET framework является то, что она обеспечивает автоматическую сборку мусора. Он автоматически освобождает память неиспользуемых объектов. В языках программирования, таких как C и C ++, программист должен самостоятельно управлять памятью. Но в таких языках, как C #, который построен на платформе. NET, есть сборщик мусора. Это помогает управлять памятью. Его нельзя использовать для освобождения ресурсов неуправляемой памяти. Для решения этой задачи можно использовать метод dispose ().
Метод dispose () может использоваться для освобождения ресурсов, таких как соединения с базой данных, обработчики файлов и т. Д. Этот метод не вызывается автоматически. Следовательно, программист должен реализовать этот метод. Как только этот метод вызывается, освобождается память для определенного неуправляемого ресурса. Этот метод объявлен в интерфейсе IDisposeable.
Что такое finalize ()?
Метод finalize вызывается только сборщиком мусора, когда ссылка на объект больше не используется. Этот метод вызывается непосредственно перед уничтожением объекта. Этот метод реализован с помощью деструктора. Метод finalize определен в классе java.lang.object. Этот метод объявлен как защищенный. Он не объявлен как общедоступный, чтобы избежать доступа других классов. В целом метод finalize может минимизировать производительность программы, поскольку он не освобождает память мгновенно.
В чем сходство между dispose () и finalize ()?
Оба метода dispose () и finalize () могут использоваться для освобождения памяти, выделенной для неуправляемого ресурса
В чем разница между dispose () и finalize ()?
Различать статью в середине перед таблицей
dispose () против finalize () |
|
Dispose () - это метод закрытия или освобождения неуправляемых ресурсов, таких как файлы и потоки, удерживаемые объектом. | Finalize - это метод для выполнения операций очистки неуправляемых ресурсов, удерживаемых текущим объектом, до его уничтожения. |
Задача | |
Метод dispose используется для освобождения неуправляемых ресурсов при его вызове. | Метод finalize используется для освобождения неуправляемых ресурсов перед уничтожением объекта. |
Определенный интерфейс или класс | |
Dispose () определяется в интерфейсе IDisposable interface. | Finalize () определен в классе java.lang.object. |
Вызов метода | |
Метод dispose вызывается программистом. | Сборщик мусора вызывает метод finalize. |
Спецификатор доступа | |
Метод удаления является общедоступным. | Метод финализации защищен. |
Скорость | |
Метод dispose вызывается мгновенно. | Метод finalize вызывается медленно. |
Спектакль | |
Удаление не снизит производительность программы. | Метод finalize может снизить производительность программы. |
Резюме - dispose () vs finalize ()
В этой статье обсуждалась разница между методами dispose и finalize в C #. Разница между dispose () и finalize () заключается в том, что dispose () должен быть явно вызван программистом, в то время как finalize () вызывается сборщиком мусора перед уничтожением объекта.