Разлика между Dispose () и Finalize ()

Съдържание:

Разлика между Dispose () и Finalize ()
Разлика между Dispose () и Finalize ()

Видео: Разлика между Dispose () и Finalize ()

Видео: Разлика между Dispose () и Finalize ()
Видео: #30 Какая разница между методами Finalize и Dispose? Ответ на вопрос собеседования C# / .Net 2024, Може
Anonim

Ключова разлика - dispose () срещу finalize ()

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

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

СЪДЪРЖАНИЕ

1. Общ преглед и ключова разлика

2. Какво е dispose ()

3. Какво е finalize ()

4. Прилики между dispose () и finalize ()

5. Равно до сравнение - dispose () срещу finalize () в Таблична форма

6. Обобщение

Какво е dispose ()?

Едно от най-важните предимства на. NET framework е, че осигурява автоматично събиране на боклука. Той автоматично освобождава паметта на обектите, които не се използват. В езици за програмиране като C и C ++ програмистът трябва да се справи сам с управлението на паметта. Но на езици като C #, който е изграден върху. NET framework, осигурява колекционера на боклук. Помага за управление на паметта. Не може да се използва за освобождаване на неуправляемите ресурси на паметта. Методът dispose () може да се използва за постигане на тази задача.

Разлика между dispose () и finalize ()
Разлика между dispose () и finalize ()

Методът dispose () може да се използва за освобождаване на ресурси като връзки с база данни, обработчици на файлове и т.н. Този метод не се извиква автоматично. Следователно програмистът трябва да приложи този метод. Веднага щом се извика този метод, паметта за конкретния неуправляван ресурс се освобождава. Този метод е деклариран в интерфейса IDisposeable.

Какво е finalize ()?

Методът за финализиране се извиква от събирача на боклук само когато препратката към обект не се използва допълнително. Този метод се извиква непосредствено преди унищожаването на обекта. Този метод е реализиран с помощта на деструктора. Методът за финализиране е дефиниран в класа java.lang.object. Този метод е деклариран като защитен. Не е обявено за публично, за да се избегне достъпът от другите класове. Като цяло методът за финализиране може да сведе до минимум производителността на програмата, защото не освобождава паметта незабавно.

Каква е приликата между dispose () и finalize ()?

Както dispose (), така и finalize () могат да се използват за освобождаване на паметта, разпределена за неуправляван ресурс

Каква е разликата между dispose () и finalize ()?

Различна статия Средна преди таблица

dispose () срещу finalize ()

Dispose () е метод за затваряне или освобождаване на неуправлявани ресурси като файлове, потоци, държани от обект. Финализирането е метод за извършване на операции по почистване на неуправлявани ресурси, държани от текущия обект, преди обектът да бъде унищожен.
Обективен
Методът dispose се използва за освобождаване на неуправляваните ресурси при извикването му. Методът за финализиране се използва за освобождаване на неуправляваните ресурси преди обектът да бъде унищожен.
Определен интерфейс или клас
Dispose () е дефиниран в интерфейса IDsposable interface. Завършването () е дефинирано в клас java.lang.object.
Метод за извикване
Методът dispose се извиква от програмиста. Методът за финализиране се извиква от събирача на боклук.
Спецификатор за достъп
Методът на разпореждане е публичен. Методът за финализиране е защитен.
Скорост
Методът dispose се извиква незабавно. Методът за финализиране се извиква бавно.
производителност
Изхвърлянето няма да сведе до минимум производителността на програмата. Методът за финализиране може да сведе до минимум производителността на програмата.

Резюме - dispose () срещу finalize ()

Тази статия обсъжда разликата между методите за изхвърляне и финализиране в C #. Разликата между dispose () и finalize () е, че dispose () трябва да бъде изрично извикан от програмиста, докато finalize () се извиква от събирача на боклука, преди да унищожи обекта.

Препоръчано: