Klíčový rozdíl – zlikvidujte () vs. finalizujte ()
Klíčový rozdíl mezi likvidací () a finalizací () je v tom, že likvidace () musí být explicitně vyvolána programátorem, zatímco finalizace () je vyvolána sběračem odpadu před zničením objektu.
Distribuce () je metoda k uzavření nebo uvolnění nespravovaných zdrojů, jako jsou soubory, proudy držené objektem. Finalize je metoda pro provádění operací čištění na nespravovaných prostředcích držených aktuálním objektem předtím, než je objekt zničen.
Co je disponovat()?
Jednou z nejdůležitějších výhod. NET framework spočívá v tom, že poskytuje automatické shromažďování odpadků. Automaticky uvolňuje paměť objektů, které nejsou používány. V programovacích jazycích jako C a C++ musí programátor zvládnout správu paměti sám. Ale v jazycích, jako je C, který je postaven na. NET frameworku, poskytuje garbage collector. Pomáhá spravovat paměť. Nelze jej použít k uvolnění nespravovaných paměťových prostředků. K dosažení tohoto úkolu lze použít metodu zlikvidovat ().
Metodu disponovat () lze použít k uvolnění zdrojů, jako jsou databázová připojení, manipulátory souborů atd. Tato metoda není volána automaticky. Proto by měl programátor implementovat tuto metodu. Jakmile je tato metoda vyvolána, uvolní se paměť pro konkrétní nespravovaný prostředek. Tato metoda je deklarována v rozhraní IDisposeable.
Co je finalizovat ()?
Metodu finalize volá garbage collector pouze tehdy, když se odkaz na objekt dále nepoužívá. Tato metoda se volá těsně před zničením objektu. Tato metoda je implementována pomocí destruktoru. Metoda finalize je definována ve třídě java.lang.object. Tato metoda je deklarována jako chráněná. Není deklarován jako veřejný, aby k němu neměly přístup ostatní třídy. Celkově může metoda finalizace minimalizovat výkon programu, protože neuvolňuje paměť okamžitě.
Jaká je podobnost mezi disponovat () a finalizovat()?
Odstranění () a finalize() lze použít k uvolnění paměti přidělené pro nespravovaný zdroj
Jaký je rozdíl mezi disponovat () a finalizovat()?
likvidovat () vs. finalizovat () |
|
Distribuce () je metoda k uzavření nebo uvolnění nespravovaných zdrojů, jako jsou soubory, proudy držené objektem. | Finalize je metoda pro provádění operací čištění na nespravovaných zdrojích držených aktuálním objektem před zničením objektu. |
Cíl | |
Metoda likvidace se používá k uvolnění nespravovaných zdrojů, když je vyvolána. | Metoda finalizace se používá k uvolnění nespravovaných zdrojů před zničením objektu. |
Definované rozhraní nebo třída | |
Dispozice () je definována v rozhraní IDisposable. | Finalizovat () je definováno ve třídě java.lang.object. |
Metoda vyvolání | |
Metodu likvidace vyvolává programátor. | Metodu finalizace vyvolá sběrač odpadu. |
Specifikátor přístupu | |
Způsob likvidace je veřejný. | Metoda finalizace je chráněna. |
Speed | |
Metoda likvidace je vyvolána okamžitě. | Metoda finalizace se volá pomalu. |
Výkon | |
Likvidace nebude minimalizovat výkon programu. | Metoda finalizace může minimalizovat výkon programu. |
Shrnutí – zlikvidujte () vs. finalizujte ()
Tento článek pojednával o rozdílu mezi metodami likvidace a finalizace v C. Rozdíl mezi likvidací () a finalizací () je ten, že likvidace () musí být explicitně vyvolána programátorem, zatímco finalizace () je vyvolána sběračem odpadků před zničením objektu.