Rozdiel medzi likvidáciou () a finalizáciou ()

Obsah:

Rozdiel medzi likvidáciou () a finalizáciou ()
Rozdiel medzi likvidáciou () a finalizáciou ()

Video: Rozdiel medzi likvidáciou () a finalizáciou ()

Video: Rozdiel medzi likvidáciou () a finalizáciou ()
Video: Насколько силен Юта Оккоцу | Jujutsu Kaisen 2024, Júl
Anonim

Kľúčový rozdiel – zlikvidovať () vs. finalizovať ()

Kľúčový rozdiel medzi likvidáciou () a finalizáciou () je v tom, že likvidácia () musí byť explicitne vyvolaná programátorom, kým finalizácia () je vyvolaná zberačom odpadu pred zničením objektu.

Zlikvidovanie () je metóda na zatvorenie alebo uvoľnenie nespravovaných zdrojov, ako sú súbory, prúdy uchovávané objektom. Finalizácia je metóda na vykonanie operácií čistenia na nespravovaných zdrojoch držaných aktuálnym objektom pred zničením objektu.

Čo je disponovať()?

Jednou z najdôležitejších výhod. NET rámec spočíva v tom, že poskytuje automatický zber odpadu. Automaticky uvoľňuje pamäť objektov, ktoré sa nepoužívajú. V programovacích jazykoch ako C a C++ musí programátor zvládnuť správu pamäte sám. Ale v jazykoch ako C, ktorý je postavený na. NET frameworku, poskytuje garbage collector. Pomáha spravovať pamäť. Nemožno ho použiť na uvoľnenie nespravovaných pamäťových prostriedkov. Na splnenie tejto úlohy možno použiť metódu zlikvidovania ().

Rozdiel medzi likvidáciou () a finalizáciou ()
Rozdiel medzi likvidáciou () a finalizáciou ()

Metódu disponovať () je možné použiť na uvoľnenie zdrojov, ako sú pripojenia k databáze, obslužné programy súborov atď. Táto metóda sa nevolá automaticky. Preto by mal programátor implementovať túto metódu. Akonáhle je táto metóda vyvolaná, pamäť pre konkrétny nespravovaný zdroj sa uvoľní. Táto metóda je deklarovaná v rozhraní IDisposeable.

Čo je finalizovať ()?

Metódu finalizácie volá 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 je implementovaná pomocou deštruktora. Metóda finalize je definovaná v triede java.lang.object. Táto metóda je vyhlásená za chránenú. Nie je deklarovaný ako verejný, aby sa zabránilo prístupu iných tried. Celkovo môže metóda finalizácie minimalizovať výkon programu, pretože neuvoľňuje pamäť okamžite.

Aká je podobnosť medzi likvidáciou () a finalizáciou()?

Na uvoľnenie pamäte pridelenej pre nespravovaný zdroj možno použiť aj likvidáciu () aj finalizáciu()

Aký je rozdiel medzi likvidáciou () a finalizáciou()?

likvidovať () verzus finalizovať ()

Zlikvidovanie () je metóda na zatvorenie alebo uvoľnenie nespravovaných zdrojov, ako sú súbory, prúdy, ktoré má objekt. Dokončenie je metóda na vykonanie operácií čistenia na nespravovaných zdrojoch v držbe aktuálneho objektu pred zničením objektu.
Cieľ
Metóda likvidácie sa používa na uvoľnenie nespravovaných zdrojov pri jej vyvolaní. Metóda finalizácie sa používa na uvoľnenie nespravovaných zdrojov pred zničením objektu.
Definované rozhranie alebo trieda
Zlikvidovanie () je definované v rozhraní IDisposable. Dokončenie () je definované v triede java.lang.object.
Spôsob vyvolania
Metódu likvidácie vyvoláva programátor. Metódu finalizácie vyvoláva zberač odpadu.
Špecifikátor prístupu
Spôsob likvidácie je verejný. Spôsob finalizácie je chránený.
Speed
Spôsob likvidácie sa vyvolá okamžite. Metóda finalizácie sa vyvoláva pomaly.
Výkon
Likvidácia nebude minimalizovať výkon programu. Metóda finalizácie môže minimalizovať výkon programu.

Zhrnutie – zlikvidujte () vs. finalizujte ()

Tento článok diskutoval o rozdieloch medzi metódami likvidácie a finalizácie v jazyku C. Rozdiel medzi likvidáciou () a finalizáciou () je v tom, že likvidácia () musí byť explicitne vyvolaná programátorom, kým finalizácia () je vyvolaná zberačom odpadu pred zničením objektu.

Odporúča: