Różnica między zbieraczem śmieci a destruktorem

Spisu treści:

Różnica między zbieraczem śmieci a destruktorem
Różnica między zbieraczem śmieci a destruktorem

Wideo: Różnica między zbieraczem śmieci a destruktorem

Wideo: Różnica między zbieraczem śmieci a destruktorem
Wideo: Finalize vs Dispose | C# Interview Questions 2024, Lipiec
Anonim

Kluczowa różnica – Zbieracz śmieci kontra destruktor

Większość języków programowania obsługuje programowanie obiektowe. Jest to metodologia budowania programu lub oprogramowania przy użyciu obiektów. Obiekt jest tworzony przy użyciu klasy, więc jest instancją klasy. Klasa zawiera opis tego, z czego powinien składać się obiekt. Podczas tworzenia obiektów przydzielana jest pamięć dla obiektów. Przydzielona pamięć powinna zostać zwolniona pod koniec wykonywania programu, aby ponownie wykorzystać tę pamięć dla innego obiektu. Języki programowania, takie jak Java i C. NET, używają garbage collectorów do zarządzania pamięcią, podczas gdy języki takie jak C i C++ wymagają od programisty obsługi zarządzania pamięcią. Należy przydzielić niezbędną ilość pamięci, a pod koniec wykonania pamięć powinna zostać zwolniona. Odśmiecacz i destruktor są używane do zwalniania pamięci. Kluczowa różnica między garbage collector a destructor polega na tym, że garbage collector to oprogramowanie, które wykonuje automatyczne zarządzanie pamięcią, podczas gdy destruktor to specjalna metoda wywoływana przez garbage collector podczas niszczenia obiektu.

Co to jest śmieciarz?

Niektóre języki programowania obsługują środowiska kodu zarządzanego. W językach programowania Java i C realizowane jest automatyczne zarządzanie pamięcią. Programista nie musi zwalniać pamięci używanej przez obiekty. Łatwiej im rozwijać nawet złożone systemy, ponieważ zarządzanie pamięcią odbywa się automatycznie. W językach programowania, takich jak C, C++ i Objective C, program powinien zwolnić pamięć obiektów z powrotem do systemu. Języki takie jak Java i C mogą rozpoznać obiekty, które nie są już używane. Następnie zwalniają pamięć przydzieloną dla tych obiektów z powrotem do systemu.

W językach programowania C i Java, jeśli istnieje klasa o nazwie Student, obiekt można utworzyć przy użyciu Student s=new Student (); „Nowy” służy do tworzenia instancji klasy Student. Alokuje pamięć w systemie. „s” odnosi się do bloku pamięci przydzielonego dla tego obiektu. Środowiska językowe określają, czy obiekty są używane, czy nie. Jeśli nie są dalej używane, pamięć jest zwalniana i może być używana później.

Różnica między odśmiecaczem a destruktorem
Różnica między odśmiecaczem a destruktorem

Rysunek 01: Odśmiecacz i destruktor

Podczas uruchamiania programu bloki pamięci są przydzielane z puli pamięci systemowej. Następnie program wykonuje zadania korzystając z tej pamięci. Po zakończeniu wykonywania programu garbage collector dowiaduje się, czy przydzielone bloki pamięci dla programu są niezbędne, czy nie. Jeśli nie są wymagane, te bloki pamięci są zwracane do systemu. Tak więc garbage collector może śledzić utworzone obiekty w programie. Bloki pamięci, które nie są już potrzebne, są odsyłane z powrotem do puli pamięci systemowej. Główną zaletą tego procesu jest potwierdzenie, że programista nie musi koncentrować się na dezalokacji pamięci. Równoważy wydajność i wykorzystanie pamięci.

Co to jest destruktor?

Destruktor to specjalna funkcja składowa klasy. Jest wywoływana, gdy obiekt wychodzi poza zakres. Obiekt może zostać zniszczony po zakończeniu funkcji lub na końcu wykonywania programu. Destruktor ma taką samą nazwę jak nazwa klasy. Konstruktor służy do tworzenia obiektu. Może akceptować parametry. Konstruktor może również mieć zwracane wartości. Ale w Destructor nie ma typu zwracanego ani akceptujących parametrów. Klasa może składać się tylko z jednego destruktora. Destruktor jest określany za pomocą znaku tyldy. Jeśli nazwa klasy to Student, to destruktor to ~Student() {}.

Odśmiecacz szuka obiektów, które nie są już potrzebne. Zapewnia, że obiekty, które nie są już używane przez program, powinny zostać zniszczone. Wywołuje destruktor, aby zwolnić pamięć i zwolnić zasoby. Destruktory są przydatne do zwalniania pamięci, zamykania plików, zwalniania zasobów sieciowych i zamykania połączeń z bazą danych. W większości języków programowania nie jest konieczne pisanie destruktora, ponieważ garbage collector sam wywołuje konstruktor domyślny. Jeśli programista wykonał jakąkolwiek dynamiczną alokację pamięci za pomocą wskaźników w języku takim jak C++, powinien napisać destruktor zwalniający pamięć przed zniszczeniem obiektu.

Jakie jest podobieństwo między zbieraczem śmieci a destruktorem?

Zarówno Garbage Collector, jak i Destructor są używane do zwalniania pamięci, która nie jest już potrzebna dla programu

Jaka jest różnica między zbieraczem śmieci a destruktorem?

Zbieracz śmieci kontra destruktor

Odśmiecacz to oprogramowanie, które wykonuje automatyczne zarządzanie pamięcią. Destruktor to specjalna metoda wywoływana przez garbage collector podczas niszczenia obiektu.
Wpisz
Odśmiecacz to oprogramowanie. Destruktor to metoda.

Podsumowanie – Zbieracz śmieci kontra destruktor

Zbieracz śmieci i destruktor to dwa terminy związane ze zwalnianiem pamięci. W tym artykule omówiono różnicę między Garbage Collectorem a destruktorem. Różnica między garbage collector a destructor polega na tym, że garbage collector to oprogramowanie, które wykonuje automatyczne zarządzanie pamięcią, podczas gdy destruktor to specjalna metoda wywoływana przez garbage collector podczas niszczenia obiektu.

Pobierz plik PDF z Garbage Collector vs Destructor

Możesz pobrać wersję PDF tego artykułu i używać jej do celów offline zgodnie z notatką cytowania. Proszę pobrać wersję PDF tutaj: Różnica między zbieraczem śmieci a destruktorem

Zalecana: