Większość języków programowania obsługuje programowanie obiektowe. Jest to metodologia budowy 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 pamięć jest przydzielana dla obiektów. Przydzieloną pamięć należy zwolnić pod koniec wykonywania programu, aby ponownie wykorzystać tę pamięć dla jakiegoś innego obiektu. Języki programowania, takie jak Java i C # .NET, używają kolektorów pamięci 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 wykonywania pamięć należy zwolnić. Pojemnik na śmieci i destruktor służą do zwalniania pamięci. The kluczowa różnica między śmieciarzem a destruktorem jest to 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.
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 obok siebie - Garbage Collector vs Destructor w formie tabeli
6. Podsumowanie
Niektóre języki programowania zarządzają środowiskami kodu. W językach programowania Java i C # odbywa się automatyczne zarządzanie pamięcią. Programista nie musi zwalniać pamięci używanej przez obiekty. Łatwiej jest im opracowywać 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, wówczas obiekt można utworzyć za pomocą Student s = new Student (); „Nowy” służy do tworzenia instancji klasy Student. Przydziela 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 będą dalej używane, pamięć zostanie zwolniona i można ją później wykorzystać.
Rysunek 01: Garbage Collector and Destructor
Podczas uruchamiania programu bloki pamięci są przydzielane z puli pamięci systemowej. Następnie program wykonuje zadania przy użyciu tej pamięci. Po zakończeniu wykonywania programu śmieciarz ustala, 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. A zatem śmieciarz może śledzić utworzone obiekty w programie. Bloki pamięci, które nie są już wymagane, są wysyłane z powrotem do systemowej puli pamięci. Główną zaletą tego procesu jest potwierdzenie, że programista nie musi koncentrować się na zwolnieniu pamięci. Równoważy wydajność i zużycie pamięci.
Destruktor jest specjalną funkcją składową klasy. Jest wywoływany, gdy obiekt wykracza poza zakres. Obiekt może zostać zniszczony, gdy funkcja się zakończy lub pod koniec wykonywania programu. Destruktor ma taką samą nazwę jak nazwa klasy. Do utworzenia obiektu służy konstruktor. Może akceptować parametry. Konstruktor może również mieć zwracane wartości. Ale w Destructor nie ma typu zwrotu ani akceptowania 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 destruktorem jest ~ Student () .
Śmieciarka szuka obiektów, które nie są już potrzebne. Zapewnia to, że obiekty, które nie są już używane przez program, zostaną 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ż śmieciarz wywołuje domyślny konstruktor. Jeśli programista dokonał dynamicznej alokacji pamięci za pomocą wskaźników w języku takim jak C ++, powinien napisać destruktor w celu zwolnienia pamięci przed zniszczeniem obiektu.
Garbage Collector vs Destructor | |
Garbage collector to oprogramowanie, które wykonuje automatyczne zarządzanie pamięcią. | Destruktor to specjalna metoda wywoływana przez moduł wyrzucania elementów bezużytecznych podczas niszczenia obiektu. |
Rodzaj | |
Garbage collector to oprogramowanie. | Destruktor jest metodą. |
Śmieciarka i destruktor to dwa terminy związane z zwalnianiem pamięci. W tym artykule omówiono różnicę między Garbage Collector i destructor. Różnica między śmieciarzem a destruktorem polega na tym, że śmieciarz to oprogramowanie, które wykonuje automatyczne zarządzanie pamięcią, podczas gdy destruktor to specjalna metoda wywoływana przez śmieciarza podczas niszczenia obiektu.
Możesz pobrać wersję PDF tego artykułu i używać go do celów offline zgodnie z cytatem. Pobierz wersję PDF tutaj: Różnica między Garbage Collector a Destructor
1.lyndapodcast. „Jak działa zbieranie śmieci C # | Lynda. Samouczek Com ”. Jak działa zbieranie śmieci C # tutorial lynda.Com, LinkedIn Learning Solutions, 19 września 2011. Dostępny tutaj
2. Niszczyciele w C. ” GeeksforGeeks, 27 maja 2017 r. Dostępne tutaj
3.Jain, Shubham. „Garbage Collector And Destructor In C #.” C # Corner. Dostępny tutaj