Razlika Između Sakupljača Smeća I Razarača

Sadržaj:

Razlika Između Sakupljača Smeća I Razarača
Razlika Između Sakupljača Smeća I Razarača

Video: Razlika Između Sakupljača Smeća I Razarača

Video: Razlika Između Sakupljača Smeća I Razarača
Video: Brodovi JRM 2024, Svibanj
Anonim

Ključna razlika - Sakupljač smeća vs Destruktor

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, pa je primjer klase. Klasa daje opis onoga od čega bi se objekt trebao sastojati. Prilikom stvaranja objekata za te se objekte dodjeljuje memorija. Dodijeljena memorija trebala bi se osloboditi na kraju izvođenja programa da 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 poput C i C ++ zahtijevaju od programera da upravlja memorijom. Treba dodijeliti potrebnu količinu memorije, a na kraju izvršenja memoriju treba osloboditi. Sakupljač smeća i destruktor koriste se za oslobađanje memorije. Ključna razlika između sakupljača smeća i destruktora je ta što je sakupljač smeća softver koji vrši automatsko upravljanje memorijom, dok je destruktor posebna metoda koju sakupljač smeća naziva tijekom uništavanja predmeta.

SADRŽAJ

1. Pregled i ključna razlika

2. Što je skupljač smeća

3. Što je destruktor

4. Sličnosti između sakupljača smeća i destruktora

5. Usporedna usporedba - Sakupljač smeća i destruktor u tabličnom obliku

6. Sažetak

Što je skupljač smeća?

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

U programskim jezicima C # i Java, ako postoji klasa koja se zove Student, tada se objekt može stvoriti pomoću Student s = new Student (); 'Novo' se koristi za stvaranje instance klase Student. Dodjeljuje memoriju u sustavu. Oznaka 's' odnosi se na memorijski blok dodijeljen za taj objekt. Jezična okruženja prepoznaju koriste li se objekti ili ne. Ako se dalje ne koriste, memorija se oslobađa i može se koristiti kasnije.

Razlika između sakupljača smeća i razarača
Razlika između sakupljača smeća i razarača

Slika 01: Sakupljač i razarač smeća

Prilikom izvođenja programa, blokovi memorije dodjeljuju se iz spremišta sistemske memorije. Tada program izvršava zadatke koristeći tu memoriju. Kad je izvršavanje programa završeno, 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 vraćaju se natrag u sistemsko spremište memorije. Glavna prednost ovog postupka je potvrditi da programer ne mora biti koncentriran na oslobađanje memorije. Uravnotežuje performanse i upotrebu memorije.

Što je destruktor?

Destruktor je posebna funkcija člana klase. Poziva se kad god objekt izlazi iz opsega. Objekt se može uništiti kad funkcija završi ili na kraju izvršenja programa. Destruktor ima isto ime kao i naziv klase. Konstruktor se koristi za stvaranje objekta. Može prihvatiti parametre. Konstruktor također može imati povratne vrijednosti. Ali u destruktoru nema vrste povratka ili prihvaćanja parametara. Klasa se može sastojati samo od jednog destruktora. Destruktor se upućuje pomoću znaka tilde. Ako je ime klase Student, tada je destruktor ~ Student () {}.

Sakupljač smeća traži predmete koji više nisu potrebni. Osigurava uništavanje objekata koji se više ne koriste programom. 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 s bazom podataka. U većini programskih jezika nije potrebno pisati destruktor jer skupljač smeća samostalno poziva zadani konstruktor. Ako je programer izvršio bilo kakvu dinamičku dodjelu memorije pomoću pokazivača na jeziku poput C ++, tada bi trebao napisati destruktor za oslobađanje memorije prije nego što se objekt uništi.

U čemu je sličnost sakupljača smeća i razarača?

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

Koja je razlika između sakupljača smeća i razarača?

Diff Article Sredina prije tablice

Skupljač smeća vs Destruktor

Sakupljač smeća je softver koji vrši automatsko upravljanje memorijom. Destruktor je posebna metoda koju sakupljač smeća naziva tijekom uništavanja predmeta.
Tip
Sakupljač smeća je softver. Destruktor je metoda.

Sažetak - Sakupljač smeća vs Destruktor

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

Preuzmite PDF datoteke Garbage Collector vs Destructor

Možete preuzeti PDF verziju ovog članka i koristiti je u izvanmrežne svrhe prema napomeni. Preuzmite PDF verziju ovdje: Razlika između sakupljača smeća i destruktora

Preporučeno: