Kľúčový rozdiel - dispose () vs finalize ()
Kľúčový rozdiel medzi dispose () a finalize () je ten, že dispose () musí byť explicitne vyvolaný programátorom, zatiaľ čo finalize () je vyvolaný zberačom odpadu pred zničením objektu.
Dispose () je metóda na zatvorenie alebo uvoľnenie nespravovaných zdrojov, ako sú súbory, streamy držané objektom. Finalizácia je metóda na vykonávanie operácií čistenia na nespravovaných prostriedkoch držaných aktuálnym objektom pred zničením objektu.
OBSAH
1. Prehľad a kľúčový rozdiel
2. Čo je to dispose ()
3. Čo je finalize ()
4. Podobnosti medzi dispose () a finalize ()
5. Porovnanie vedľa seba - dispose () vs finalize () v tabuľkovej forme
6. Zhrnutie
Čo je to dispose ()?
Jednou z najdôležitejších výhod. NET framework je, že poskytuje automatický zber odpadu. Automaticky uvoľňuje pamäť nepoužívaných objektov. V programovacích jazykoch ako C a C ++ musí programátor zvládnuť správu pamäte sám. Ale v jazykoch, ako je C #, ktorý je postavený na rozhraní. NET, poskytuje zberač odpadkov. Pomáha spravovať pamäť. Nie je možné ju použiť na uvoľnenie prostriedkov nespravovanej pamäte. Na dosiahnutie tejto úlohy je možné použiť metódu dispose ().
Metódu dispose () je možné použiť na uvoľnenie prostriedkov, ako sú databázové pripojenia, manipulátory so súbormi atď. Táto metóda sa nevyvoláva automaticky. Preto by mal programátor implementovať túto metódu. Ihneď po vyvolaní tejto metódy sa uvoľní pamäť pre konkrétny nespravovaný prostriedok. Táto metóda je deklarovaná v rozhraní IDisposeable.
Čo je finalize ()?
Metódu finalize vyvoláva garbage collector iba vtedy, keď sa odkaz na objekt ďalej nepoužíva. Táto metóda sa volá tesne pred zničením objektu. Táto metóda sa implementuje pomocou deštruktora. Metóda finalize je definovaná v triede java.lang.object. Táto metóda je deklarovaná ako chránená. Nie je vyhlásené za verejné, aby sa zabránilo prístupu ostatných tried. Metóda finalize celkovo môže minimalizovať výkon programu, pretože okamžite neuvoľní pamäť.
Aká je podobnosť medzi dispose () a finalize ()?
Dispose () aj finalize () možno použiť na uvoľnenie pamäte pridelenej pre nespravovaný prostriedok
Aký je rozdiel medzi dispose () a finalize ()?
Rozdielny článok v strede pred tabuľkou
dispose () vs finalize () |
|
Dispose () je metóda na zatvorenie alebo uvoľnenie nespravovaných zdrojov, ako sú súbory, streamy držané objektom. | Finalizácia je metóda na vykonanie operácií vyčistenia nespravovaných prostriedkov, ktoré drží aktuálny objekt pred zničením objektu. |
Cieľ | |
Metóda dispose sa používa na uvoľnenie nespravovaných prostriedkov po vyvolaní. | Metóda finalize sa používa na uvoľnenie nespravovaných prostriedkov pred zničením objektu. |
Definované rozhranie alebo trieda | |
Dispose () je definovaný v rozhraní IDisposable interface. | Finalize () je definovaný v triede java.lang.object. |
Vyvolávacia metóda | |
Metódu dispose vyvolá programátor. | Metódu finalize vyvoláva garbage collector. |
Špecifikátor prístupu | |
Metóda vyradenia je verejná. | Metóda finalizácie je chránená. |
Rýchlosť | |
Metóda dispose je vyvolaná okamžite. | Metóda finalizácie sa vyvoláva pomaly. |
Výkon | |
Odstránenie nebude minimalizovať výkonnosť programu. | Finalizačná metóda môže minimalizovať výkonnosť programu. |
Zhrnutie - dispose () vs finalize ()
Tento článok pojednáva o rozdieloch medzi metódami dispose a finalize v C #. Rozdiel medzi dispose () a finalize () je v tom, že dispose () musí byť explicitne vyvolaný programátorom, zatiaľ čo finalize () je vyvolaný zberačom odpadu pred zničením objektu.