Klíčový rozdíl - dispose () vs finalize ()
Klíčový rozdíl mezi dispose () a finalize () spočívá v tom, že program dispose () musí být explicitně vyvolán programátorem, zatímco finalize () je vyvolán garbage collectorem před zničením objektu.
Dispose () je metoda k zavření nebo uvolnění nespravovaných prostředků, jako jsou soubory, streamy držené objektem. Finalizace je metoda k provedení operací vyčištění na nespravovaných prostředcích držených aktuálním objektem před zničením objektu.
OBSAH
1. Přehled a hlavní rozdíl
2. Co je to dispose ()
3. Co je finalize ()
4. Podobnosti mezi dispose () a finalize ()
5. Porovnání vedle sebe - dispose () vs finalize () v tabulkové formě
6. souhrn
Co je to dispose ()?
Jednou z nejdůležitějších výhod rozhraní. NET framework je, že poskytuje automatický sběr odpadu. Automaticky uvolňuje paměť nepoužívaných objektů. V programovacích jazycích, jako jsou 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 framework 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 dispose ().
Metodu dispose () lze použít k uvolnění prostředků, jako jsou připojení k databázi, obslužné rutiny souborů atd. Tato metoda není volána automaticky. Programátor by proto měl tuto metodu implementovat. 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 finalize ()?
Finalizační metoda je volána pouze garbage collectorem, když se odkaz na objekt dále nepoužívá. Tato metoda se nazývá 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á. Aby se zabránilo přístupu jiných tříd, není deklarováno jako veřejné. Celkově může metoda finalize minimalizovat výkon programu, protože okamžitě neuvolní paměť.
Jaká je podobnost mezi dispose () a finalize ()?
Dispose () a finalize () lze použít k uvolnění paměti přidělené pro nespravovaný prostředek
Jaký je rozdíl mezi dispose () a finalize ()?
Rozdílný článek uprostřed před tabulkou
dispose () vs finalize () |
|
Dispose () je metoda k zavření nebo uvolnění nespravovaných prostředků, jako jsou soubory, streamy držené objektem. | Finalizace je metoda k provedení operací vyčištění na nespravovaných prostředcích držených aktuálním objektem před zničením objektu. |
Objektivní | |
Metoda dispose se používá k uvolnění nespravovaných prostředků při jejím vyvolání. | Metoda finalize se používá k uvolnění nespravovaných prostředků před zničením objektu. |
Definované rozhraní nebo třída | |
Dispose () je definován v rozhraní IDisposable interface. | Finalize () je definován ve třídě java.lang.object. |
Vyvolávací metoda | |
Metodu vyřazení vyvolá programátor. | Metoda finalize je vyvolána garbage collectorem. |
Specifikátor přístupu | |
Metoda vyřazení je veřejná. | Metoda finalizace je chráněna. |
Rychlost | |
Metoda dispose je vyvolána okamžitě. | Metoda finalize je vyvolána pomalu. |
Výkon | |
Likvidace nebude minimalizovat výkonnost programu. | Metoda finalize může minimalizovat výkon programu. |
Shrnutí - dispose () vs finalize ()
Tento článek pojednával o rozdílu mezi metodami dispose a finalize v C #. Rozdíl mezi dispose () a finalize () spočívá v tom, že dispose () musí být explicitně vyvolán programátorem, zatímco finalize () je vyvolán garbage collectorem před zničením objektu.