Razlika između skupljača smeća i destruktora

Sadržaj:

Razlika između skupljača smeća i destruktora
Razlika između skupljača smeća i destruktora

Video: Razlika između skupljača smeća i destruktora

Video: Razlika između skupljača smeća i destruktora
Video: Informatika 3.r. SŠ - Složenost algoritama sortiranja zamjenom (2) 2024, Srpanj
Anonim

Ključna razlika – sakupljač smeća nasuprot destruktoru

Većina programskih jezika podržava objektno orijentirano programiranje. To je metodologija za izradu programa ili softvera pomoću objekata. Objekt se stvara pomoću klase, tako da je instanca klase. Klasa daje opis onoga od čega bi se objekt trebao sastojati. Prilikom kreiranja objekata, memorija se dodjeljuje za objekte. Dodijeljena memorija bi se trebala osloboditi na kraju izvođenja programa kako bi se ta memorija ponovno upotrijebila za neki drugi objekt. Programski jezici kao što su Java i C. NET koriste sakupljače smeća za upravljanje memorijom, dok jezici kao što su C i C++ zahtijevaju od programera upravljanje memorijom. Potrebno je dodijeliti potrebnu količinu memorije, a na kraju izvođenja memoriju osloboditi. Skupljač smeća i destruktor koriste se za oslobađanje memorije. Ključna razlika između skupljača smeća i destruktora je u tome što je sakupljač smeća softver koji obavlja automatsko upravljanje memorijom, dok je destruktor posebna metoda koju poziva sakupljač smeća tijekom uništavanja objekta.

Što je skupljač smeća?

Neki programski jezici imaju okruženja upravljanog koda. U programskim jezicima Java i C vrši se automatsko upravljanje memorijom. Programer ne treba oslobađati memoriju koju koriste objekti. Lakše im je razvijati čak i složene sustave jer se upravljanje memorijom obavlja automatski. U programskim jezicima kao što su C, C++ i Objective C, program bi trebao osloboditi memoriju objekata natrag u sustav. Jezici kao što su Java i C mogu otkriti objekte koji se više ne koriste. Nakon toga oslobađaju memoriju dodijeljenu tim objektima natrag u sustav.

U programskim jezicima C i Javi, ako postoji klasa pod nazivom Student, tada se objekt može kreirati koristeći Student s=new Student (); 'Novo' se koristi za stvaranje instance klase Student. Dodjeljuje memoriju u sustavu. 's' se odnosi na memorijski blok dodijeljen tom objektu. Jezična okruženja identificiraju koriste li se objekti ili ne. Ako se dalje ne koriste, tada se memorija oslobađa i može se koristiti kasnije.

Razlika između skupljača smeća i destruktora
Razlika između skupljača smeća i destruktora

Slika 01: Skupljač smeća i destruktor

Kada se izvodi program, blokovi memorije se dodjeljuju iz skupa memorije sustava. Zatim program izvršava zadatke koristeći tu memoriju. Kada je izvršenje programa gotovo, sakupljač smeća utvrđuje jesu li dodijeljeni blokovi memorije za program bitni ili ne. Ako nisu potrebni, ti se memorijski blokovi vraćaju u sustav. Dakle, sakupljač smeća može pratiti stvorene objekte u programu. Memorijski blokovi koji više nisu potrebni šalju se natrag u sistemsku memoriju. Glavna prednost ovog procesa je potvrda da se programer ne mora koncentrirati na oslobađanje memorije. Usklađuje performanse i korištenje memorije.

Što je Destructor?

Destruktor je posebna funkcija član klase. Poziva se kad god objekt izađe iz opsega. Objekt se može uništiti kada funkcija završi ili na kraju izvođenja programa. Destruktor ima isto ime kao ime klase. Konstruktor se koristi za stvaranje objekta. Može prihvatiti parametre. Konstruktor također može imati povratne vrijednosti. Ali u destruktoru ne postoji vrsta povrata niti prihvatljivi parametri. Klasa se može sastojati samo od jednog destruktora. Destruktor se upućuje pomoću znaka tilde. Ako je naziv klase Student, tada je destruktor ~Student () {}.

Sakupljač smeća traži objekte koji više nisu potrebni. Osigurava uništavanje objekata koje program više ne koristi. Poziva destruktor da oslobodi memoriju i oslobodi resurse. Destruktori su korisni za oslobađanje memorije, zatvaranje datoteka, oslobađanje mrežnih resursa i zatvaranje veza baze podataka. U većini programskih jezika nije potrebno pisati destruktor jer skupljač smeća sam poziva zadani konstruktor. Ako je programer napravio bilo kakvu dinamičku dodjelu memorije koristeći pokazivače u jeziku kao što je C++, tada bi trebao napisati destruktor za oslobađanje memorije prije nego što se objekt uništi.

Koja je sličnost između skupljača smeća i destruktora?

I Garbage Collector i Destructor koriste se za oslobađanje memorije koja više nije potrebna za program

Koja je razlika između skupljača smeća i destruktora?

Garbage Collector vs Destructor

Sakupljač smeća je softver koji obavlja automatsko upravljanje memorijom. Destruktor je posebna metoda koju poziva sakupljač smeća tijekom uništavanja objekta.
Tip
Sakupljač smeća je softver. Destruktor je metoda.

Sažetak – Garbage Collector vs Destructor

Sakupljač smeća i destruktor dva su pojma povezana s oslobađanjem memorije. Ovaj članak raspravlja o razlici između sakupljača smeća i destruktora. Razlika između skupljača smeća i destruktora je u tome što je sakupljač smeća softver koji obavlja automatsko upravljanje memorijom, dok je destruktor posebna metoda koju poziva sakupljač smeća tijekom uništavanja objekta.

Preuzmite PDF Garbage Collector vs Destructor

Možete preuzeti PDF verziju ovog članka i koristiti ga za izvanmrežne svrhe prema napomeni o citatu. Ovdje preuzmite PDF verziju: Razlika između skupljača smeća i destruktora

Preporučeni: