Kluczowa różnica - Garbage Collector vs Destructor
Większość języków programowania obsługuje programowanie obiektowe. Jest to metodologia tworzenia programu lub oprogramowania przy użyciu obiektów. Obiekt jest tworzony za pomocą 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ą modułów odśmiecania pamięci do zarządzania pamięcią, podczas gdy języki takie jak C i C ++ wymagają od programisty zarządzania pamięcią. Należy przydzielić niezbędną ilość pamięci, a na koniec wykonania pamięć powinna zostać zwolniona. Garbage collector i destructor służą do zwalniania pamięci. Kluczową różnicą między garbage collector i destruktorem jest to, ż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.
ZAWARTOŚĆ
1. Przegląd i kluczowa różnica
2. Co to jest garbage collector
3. Co to jest niszczyciel
4. Podobieństwa między Garbage Collector i Destructor
5. Porównanie bezpośrednie - Garbage Collector vs Destructor w formie tabelarycznej
6. Podsumowanie
Co to jest garbage collector?
Niektóre języki programowania mają środowiska kodu zarządzanego. W językach programowania Java i C # wykonywane jest automatyczne zarządzanie pamięcią. Programista nie musi zwalniać pamięci zajmowanej przez obiekty. Łatwiej jest im tworzyć 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ą wykryć 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, to obiekt można utworzyć za pomocą 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żna jej użyć później.
Rysunek 01: Garbage Collector i Destructor
Podczas uruchamiania programu bloki pamięci są przydzielane z puli pamięci systemu. Następnie program wykonuje zadania wykorzystując tę pamięć. Po zakończeniu wykonywania programu moduł odśmiecania pamięci ustala, czy przydzielone bloki pamięci dla programu są niezbędne, czy nie. Jeśli nie są potrzebne, te bloki pamięci są zwracane do systemu. Zatem 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 systemu. Główną zaletą tego procesu jest potwierdzenie, że programista nie musi koncentrować się na zwalnianiu pamięci. Równoważy wydajność i zużycie pamięci.
Co to jest niszczyciel?
Destruktor to specjalna funkcja składowa klasy. Jest wywoływana za każdym razem, gdy obiekt wychodzi poza zasięg. Obiekt może zostać zniszczony, gdy funkcja kończy się lub pod koniec wykonywania programu. Destruktor ma taką samą nazwę jak nazwa klasy. Do stworzenia obiektu służy konstruktor. Może akceptować parametry. Konstruktor może również zwracać wartości. Ale w Destructorze nie ma typu zwracanego ani akceptowania parametrów. Klasa może składać się tylko z jednego destruktora. Do destruktora odwołuje się znak tyldy. Jeśli nazwa klasy to Student, to destruktor to ~ Student () {}.
Moduł odśmiecania pamięci szuka obiektów, które nie są już potrzebne. Zapewnia, że obiekty, które nie są już używane przez program, powinny zostać zniszczone. Wzywa destruktor w celu zwolnienia pamięci i zwolnienia zasobów. 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ż moduł odśmiecający sam wywołuje domyślny konstruktor. Jeśli programista wykonał jakąkolwiek dynamiczną alokację pamięci za pomocą wskaźników w języku takim jak C ++, powinien napisać destruktor, aby zwolnić pamięć, zanim obiekt zostanie zniszczony.
Jakie jest podobieństwo między Garbage Collector i Destruktorem?
Zarówno Garbage Collector, jak i Destructor służą do zwalniania pamięci, która nie jest już wymagana dla programu
Jaka jest różnica między Garbage Collector a Destruktorem?
Porównaj środek artykułu przed tabelą
Garbage Collector vs Destructor |
|
Odśmiecacz pamięci to oprogramowanie, które wykonuje automatyczne zarządzanie pamięcią. | Destruktor to specjalna metoda wywoływana przez garbage collectora podczas niszczenia obiektu. |
Rodzaj | |
Odśmiecacz to oprogramowanie. | Destruktor to metoda. |
Podsumowanie - Garbage Collector vs Destructor
Garbage collector i destructor to dwa terminy związane ze zwalnianiem pamięci. W tym artykule omówiono różnicę między Garbage Collector a destruktorem. Różnica między garbage collector a destructorem 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 Garbage Collector vs Destructor
Możesz pobrać wersję PDF tego artykułu i używać jej w trybie offline, zgodnie z notą cytatową. Pobierz wersję PDF tutaj: Różnica między Garbage Collector a Destructorem