Kluczowa różnica - dispose () vs finalize ()
Kluczową różnicą między dispose () i finalize () jest to, że dispose () musi być jawnie wywoływane przez programistę, podczas gdy finalize () jest wywoływana przez moduł odśmiecania pamięci przed zniszczeniem obiektu.
Dispose () to metoda zamykania lub zwalniania niezarządzanych zasobów, takich jak pliki, strumienie przechowywane przez obiekt. Finalize to metoda wykonywania operacji czyszczenia na niezarządzanych zasobach przechowywanych przez bieżący obiekt przed zniszczeniem obiektu.
ZAWARTOŚĆ
1. Przegląd i kluczowa różnica
2. Co jest dispose ()
3. Co jest finalize ()
4. Podobieństwa między dispose () a finalize ()
5. Porównanie obok siebie - dispose () vs finalize () w formie tabelarycznej
6. streszczenie
Co to jest dispose ()?
Jedną z najważniejszych zalet platformy. NET jest to, że zapewnia ona automatyczne usuwanie elementów bezużytecznych. Automatycznie uwalnia pamięć obiektów, które nie są używane. W językach programowania, takich jak C i C ++, programista musi samodzielnie zarządzać pamięcią. Jednak w językach takich jak C #, które są oparte na platformie. NET, udostępnia moduł odśmiecania pamięci. Pomaga w zarządzaniu pamięcią. Nie można go użyć do zwolnienia niezarządzanych zasobów pamięci. Do wykonania tego zadania można użyć metody dispose ().
Metoda dispose () może służyć do zwalniania zasobów, takich jak połączenia z bazą danych, programy obsługi plików itp. Ta metoda nie jest wywoływana automatycznie. Dlatego programista powinien zaimplementować tę metodę. Zaraz po wywołaniu tej metody zostaje zwolniona pamięć dla określonego niezarządzanego zasobu. Ta metoda jest zadeklarowana w interfejsie IDisposeable.
Co to jest finalize ()?
Metoda finalize jest wywoływana przez moduł odśmiecania pamięci tylko wtedy, gdy odwołanie do obiektu nie jest dalej używane. Ta metoda jest wywoływana tuż przed zniszczeniem obiektu. Ta metoda jest implementowana za pomocą destruktora. Metoda finalize jest zdefiniowana w klasie java.lang.object. Ta metoda jest zadeklarowana jako chroniona. Nie jest zadeklarowany jako publiczny, aby uniknąć dostępu przez inne klasy. Ogólnie rzecz biorąc, metoda finalizacji może zminimalizować wydajność programu, ponieważ nie zwalnia pamięci natychmiast.
Jakie jest podobieństwo między dispose () a finalize ()?
Zarówno dispose (), jak i finalize () mogą służyć do zwolnienia pamięci przydzielonej dla niezarządzanego zasobu
Jaka jest różnica między dispose () a finalize ()?
Porównaj środek artykułu przed tabelą
dispose () vs finalize () |
|
Dispose () to metoda zamykania lub zwalniania niezarządzanych zasobów, takich jak pliki, strumienie przechowywane przez obiekt. | Finalizacja to metoda wykonywania operacji czyszczenia na niezarządzanych zasobach przechowywanych przez bieżący obiekt przed zniszczeniem obiektu. |
Cel | |
Metoda dispose służy do zwolnienia niezarządzanych zasobów, gdy jest wywoływana. | Metoda finalize służy do zwolnienia niezarządzanych zasobów przed zniszczeniem obiektu. |
Zdefiniowany interfejs lub klasa | |
Metoda dispose () jest zdefiniowana w interfejsie IDisposable. | Finalize () jest zdefiniowana w klasie java.lang.object. |
Metoda wywoływania | |
Metoda dispose jest wywoływana przez programistę. | Metoda finalize jest wywoływana przez moduł odśmiecania pamięci. |
Specyfikator dostępu | |
Metoda usuwania jest publiczna. | Metoda finalizacji jest chroniona. |
Prędkość | |
Metoda dispose jest wywoływana natychmiast. | Metoda finalize jest wywoływana powoli. |
Wydajność | |
Utylizacja nie zminimalizuje wydajności programu. | Metoda finalizacji może zminimalizować wydajność programu. |
Podsumowanie - dispose () vs finalize ()
W tym artykule omówiono różnicę między metodami usuwania i finalizowania w języku C #. Różnica między dispose () i finalize () polega na tym, że dispose () musi być jawnie wywołane przez programistę, podczas gdy finalize () jest wywoływana przez moduł odśmiecania pamięci przed zniszczeniem obiektu.