Peamine erinevus - prügikoguja vs hävitaja
Enamik programmeerimiskeeli toetab objektorienteeritud programmeerimist. See on metoodika objekti või tarkvara loomiseks. Objekt luuakse klassi abil, seega on see klassi eksemplar. Klass kirjeldab, millest objekt peaks koosnema. Objektide loomisel eraldatakse objektidele mälu. Eraldatud mälu tuleks vabastada programmi käivitamise lõpus, et seda mälu taaskasutada mõne muu objekti jaoks. Programmeerimiskeeled nagu Java ja C #. NET kasutavad mäluhalduseks prügikogujaid, samas kui keeled nagu C ja C ++ nõuavad programmeerijalt mäluhalduse haldamist. Tuleks eraldada vajalik mälumaht ja täitmise lõpus peaks mälu vabastama. Mälu vabastamiseks kasutatakse prügikollektorit ja hävitajat. Peamine erinevus prügikoristaja ja hävitaja vahel seisneb selles, et prügikoguja on tarkvara, mis teostab automaatset mäluhaldust, samal ajal kui hävitaja on spetsiaalne meetod, mida objekti hävitamise käigus prügikoguja kutsub.
SISU
1. Ülevaade ja peamine erinevus
2. Mis on prügikoguja
3. Mis on hävitaja
4. Prügikoristaja ja hävitaja sarnasused
5. Kõrvuti võrdlus - prügikoguja vs hävitaja tabelina
6. Kokkuvõte
Mis on prügikoguja?
Mõnes programmeerimiskeeles on hallatud koodikeskkonnad. Programmeerimiskeeltes Java ja C # viiakse läbi automaatne mäluhaldus. Programmeerija ei pea objektide poolt kasutatavat mälu vabastama. Neil on lihtsam välja töötada isegi keerukaid süsteeme, kuna mäluhaldus toimub automaatselt. Programmeerimiskeeltes C, C ++ ja Objective C peaks programm objektide mälu süsteemi tagasi vabastama. Sellised keeled nagu Java ja C # saavad aru objektidest, mida enam ei kasutata. Seejärel vabastavad nad nende objektide jaoks eraldatud mälu süsteemi tagasi.
Kui programmeerimiskeeltes on C # ja Java, siis on olemas klass nimega Student, siis saab objekti luua kasutades Student s = new Student (); „Uut” kasutatakse õpilasklassi eksemplari loomiseks. See eraldab süsteemis mälu. 'S' viitab sellele objektile eraldatud mäluplokile. Keelekeskkonnad tuvastavad, kas objekte kasutatakse või mitte. Kui neid enam ei kasutata, vabastatakse mälu ja seda saab hiljem kasutada.
Joonis 01: Prügikoguja ja hävitaja
Programmi käivitamisel eraldatakse mäluplokid süsteemi mälupargist. Seejärel täidab programm selle mälu abil ülesandeid. Kui programmi täitmine on lõppenud, saab prügivedaja aru, kas programmi jaoks eraldatud mäluplokid on olulised või mitte. Kui neid pole vaja, tagastatakse need mäluplokid süsteemi. Niisiis, prügivedaja saab programmis loodud objekte jälgida. Enam mittevajalikud mäluplokid saadetakse tagasi süsteemi mälupulka. Selle protsessi peamine eelis on kinnitada, et programmeerija ei pea keskenduma mälu jaotamisele. See tasakaalustab jõudlust ja mälukasutust.
Mis on hävitaja?
Destruktor on klassi eriline liikmefunktsioon. Seda rakendatakse alati, kui objekt läheb reguleerimisalast välja. Objekti saab hävitada funktsiooni lõppedes või programmi täitmise lõpus. Destruktoril on sama nimi kui klassi nimel. Konstruktorit kasutatakse objekti loomiseks. See suudab parameetreid aktsepteerida. Konstruktoril võivad olla ka tagastusväärtused. Kuid Destructoris pole tagasituleku tüüpi ega parameetrite aktsepteerimist. Klass võib koosneda ainult ühest hävitajast. Destruktorile viidatakse tildimärgi abil. Kui klassi nimi on Student, siis on destructor ~ Student () {}.
Prügivedaja otsib objekte, mida enam vaja pole. See tagab objektide hävitamise, mida programm enam ei kasuta. See kutsub hävitajat üles vabastama mälu ja jaotama ressursid. Destruktorid on kasulikud mälu vabastamiseks, failide sulgemiseks, võrguressursside vabastamiseks ja andmebaasiühenduste sulgemiseks. Enamikus programmeerimiskeeltes pole hävitajat vaja kirjutada, sest prügivedaja kutsub vaikekonstruktorit ise. Kui programmeerija on teinud mis tahes dünaamilise mälu jaotamise, kasutades osuti keeles, näiteks C ++, peaks ta enne objekti hävitamist kirjutama mälu vabastamiseks hävitaja.
Milline on prügikoguja ja hävitaja sarnasus?
Nii prügikoguja kui ka hävitaja kasutatakse mälu vabastamiseks, mis pole programmi jaoks enam vajalik
Mis vahe on prügikoguja ja hävitaja vahel?
Erinev artikkel keskel enne tabelit
Prügikoguja vs hävitaja |
|
Prügikoguja on tarkvara, mis teostab automaatset mäluhaldust. | Destruktor on spetsiaalne meetod, mille prügikoguja kutsub objekti hävitamise ajal. |
Tüüp | |
Prügikoguja on tarkvara. | Destruktor on meetod. |
Kokkuvõte - prügikoguja vs hävitaja
Prügikoguja ja hävitaja on mälu vabastamisega seotud kaks mõistet. Selles artiklis arutati erinevust prügikoguja ja hävitaja vahel. Prügikoristaja ja hävitaja erinevus seisneb selles, et prügikoguja on tarkvara, mis teostab automaatset mäluhaldust, samal ajal kui hävitaja on spetsiaalne meetod, mille objekti hävitamise ajal kutsub prügikoguja.
Laadige alla prügikoguja vs hävitaja PDF-fail
Selle artikli PDF-versiooni saate alla laadida ja kasutada võrguühenduseta eesmärkidel, nagu tsiteeritud. Laadige PDF-versioon alla siit: Erinevus prügikoguja ja hävitaja vahel