Razlika med zbiralnikom smeti in uničevalcem

Kazalo:

Razlika med zbiralnikom smeti in uničevalcem
Razlika med zbiralnikom smeti in uničevalcem

Video: Razlika med zbiralnikom smeti in uničevalcem

Video: Razlika med zbiralnikom smeti in uničevalcem
Video: Мудрец без яец ► 15 Прохождение The Legend of Zelda: Tears of the Kingdom 2024, Julij
Anonim

Ključna razlika – Garbage Collector proti Destructor

Večina programskih jezikov podpira objektno usmerjeno programiranje. Je metodologija za izdelavo programa ali programske opreme z uporabo predmetov. Objekt je ustvarjen z uporabo razreda, zato je primerek razreda. Razred nudi opis tega, iz česa mora biti predmet. Pri ustvarjanju objektov se objektom dodeli pomnilnik. Dodeljeni pomnilnik je treba sprostiti na koncu izvajanja programa, da se ta pomnilnik ponovno uporabi za kakšen drug objekt. Programski jeziki, kot sta Java in C. NET, uporabljajo zbiralnike smeti za upravljanje pomnilnika, medtem ko jeziki, kot sta C in C++, zahtevajo, da programer upravlja upravljanje pomnilnika. Treba je dodeliti potrebno količino pomnilnika in ob koncu izvajanja pomnilnik sprostiti. Za sprostitev pomnilnika se uporabljata zbiralnik smeti in destruktor. Ključna razlika med zbiralnikom smeti in destruktorjem je v tem, da je zbiralnik smeti programska oprema, ki izvaja samodejno upravljanje pomnilnika, medtem ko je destruktor posebna metoda, ki jo kliče zbiralnik smeti med uničenjem predmeta.

Kaj je zbiralec smeti?

Nekateri programski jeziki imajo okolja upravljane kode. V programskih jezikih Java in C se izvaja samodejno upravljanje pomnilnika. Programerju ni treba sprostiti pomnilnika, ki ga uporabljajo objekti. Lažje razvijajo tudi kompleksne sisteme, saj upravljanje pomnilnika poteka samodejno. V programskih jezikih, kot so C, C++ in Objective C, mora program sprostiti pomnilnik objektov nazaj v sistem. Jeziki, kot sta Java in C, lahko ugotovijo predmete, ki se ne uporabljajo več. Nato sprostijo pomnilnik, dodeljen tem objektom, nazaj v sistem.

V programskih jezikih C in Java, če obstaja razred z imenom Student, potem lahko objekt ustvarite z uporabo Student s=new Student (); 'Novo' se uporablja za ustvarjanje primerka razreda Student. Dodeljuje pomnilnik v sistemu. 's' se nanaša na pomnilniški blok, dodeljen temu objektu. Jezikovna okolja prepoznajo, ali se predmeti uporabljajo ali ne. Če se ne uporabljajo več, se pomnilnik sprosti in ga lahko uporabite pozneje.

Razlika med Garbage Collector in Destructor
Razlika med Garbage Collector in Destructor

Slika 01: Zbiralnik smeti in destruktor

Ko izvajate program, se bloki pomnilnika dodelijo iz sistemskega pomnilniškega področja. Nato program izvede naloge z uporabo tega pomnilnika. Ko je izvajanje programa končano, zbiralnik smeti ugotovi, ali so dodeljeni bloki pomnilnika za program bistveni ali ne. Če niso potrebni, se ti pomnilniški bloki vrnejo v sistem. Tako lahko zbiralnik smeti sledi ustvarjenim objektom v programu. Pomnilniški bloki, ki niso več potrebni, se pošljejo nazaj v sistemsko pomnilniško področje. Glavna prednost tega postopka je potrditev, da se programerju ni treba osredotočiti na sprostitev pomnilnika. Uravnoteži zmogljivost in porabo pomnilnika.

Kaj je Destructor?

Destruktor je posebna funkcija članica razreda. Prikliče se vsakič, ko gre objekt izven obsega. Objekt se lahko uniči, ko se funkcija konča ali ob koncu izvajanja programa. Destruktor ima isto ime kot ime razreda. Konstruktor se uporablja za ustvarjanje predmeta. Lahko sprejme parametre. Konstruktor ima lahko tudi vrnjene vrednosti. Toda v Destructorju ni povratne vrste ali sprejemljivih parametrov. Razred je lahko sestavljen samo iz enega destruktorja. Destruktor je označen z uporabo znaka tilde. Če je ime razreda Student, potem je destruktor ~Student () {}.

Zbiralec smeti išče objekte, ki niso več potrebni. Zagotavlja, da se objekti, ki jih program ne uporablja več, uničijo. Pokliče destruktor, da sprosti pomnilnik in sprosti vire. Destruktorji so uporabni za sprostitev pomnilnika, zapiranje datotek, sprostitev omrežnih virov in zapiranje povezav baze podatkov. V večini programskih jezikov ni treba napisati destruktorja, ker zbiralnik smeti sam pokliče privzeti konstruktor. Če je programer izvedel kakršno koli dinamično dodelitev pomnilnika z uporabo kazalcev v jeziku, kot je C++, potem mora napisati destruktor za sprostitev pomnilnika, preden je objekt uničen.

Kakšna je podobnost med Garbage Collector in Destructor?

Tako Garbage Collector kot Destructor se uporabljata za sprostitev pomnilnika, ki ga program ne potrebuje več

Kakšna je razlika med Garbage Collector in Destructor?

Garbage Collector vs Destructor

Zbiralnik smeti je programska oprema, ki izvaja samodejno upravljanje pomnilnika. Destructor je posebna metoda, ki jo kliče zbiralec smeti med uničenjem objekta.
Vrsta
Zbiralnik smeti je programska oprema. Destruktor je metoda.

Povzetek – Garbage Collector vs Destructor

Garbage collector in destructor sta izraza, povezana s sproščanjem pomnilnika. Ta članek je obravnaval razliko med Garbage Collector in destructor. Razlika med zbiralnikom smeti in destruktorjem je v tem, da je zbiralnik smeti programska oprema, ki izvaja samodejno upravljanje pomnilnika, medtem ko je destruktor posebna metoda, ki jo kliče zbiralnik smeti med uničenjem predmeta.

Prenesite PDF Garbage Collector vs Destructor

Različico PDF tega članka lahko prenesete in jo uporabite za namene brez povezave v skladu z opombo o citiranju. Prenesite PDF različico tukaj: Razlika med zbiralnikom smeti in destruktorjem

Priporočena: