Enamik programmeerimiskeeli toetab objektorienteeritud programmeerimist. See on metoodika programmi või tarkvara ehitamiseks, kasutades objekte. Objekt on loodud klassi kasutades, seega on see klassi eksemplar. Klass kirjeldab, millest objekt peaks koosnema. Objektide loomisel eraldatakse objektidele mälu. Eraldatud mälu tuleks programmi täitmise lõpus vabastada, et seda mälu mõne muu objekti jaoks uuesti kasutada. Programmeerimiskeeled, nagu Java ja C # .NET, kasutavad mäluhalduseks prügikollektoreid, samas kui sellised keeled nagu C ja C ++ nõuavad programmeerijalt mäluhalduse käitlemist. Vajalik mälumaht tuleks eraldada ja täitmise lõppedes vabastada mälu. Mälu vabastamiseks kasutatakse prügikogujat ja hävitajat. võtme erinevus prügivedaja ja hävitaja vahel on see prügikoguja on tarkvara, mis teostab automaatset mäluhaldust, hävitaja on aga spetsiaalne meetod, mida prügikoguja kutsub objekti hävitamise ajal.
1. Ülevaade ja peamised erinevused
2. Mis on prügikoguja
3. Mis on hävitaja
4. Prügikoguja ja hävitaja sarnasused
5. Kõrvuti võrdlus - prügivedaja vs hävitaja tabelina
6. Kokkuvõte
Mõni programmeerimiskeel on hallanud koodikeskkondi. Programmeerimiskeeltes Java ja C # toimub automaatne mäluhaldus. Programmeerija ei pea objektide kasutatavat mälu vabastama. Neil on lihtsam arendada isegi keerulisi süsteeme, kuna mäluhaldus toimub automaatselt. Programmeerimiskeeltes nagu C, C ++ ja Objective C peaks programm vabastama objektide mälu tagasi süsteemi. Sellised keeled nagu Java ja C # suudavad välja mõelda objektid, mida enam ei kasutata. Pärast seda vabastavad nad nendele objektidele eraldatud mälu süsteemi.
Kui programmeerimiskeeltes C # ja Java on klass, mida nimetatakse õpilaseks, saab objekti luua kasutades õpilast s = uus õpilane (); „Uut” kasutatakse õpilasklassi eksemplari loomiseks. See eraldab süsteemis mälu. Tähed tähistavad sellele objektile eraldatud mäluplokki. Keelekeskkonnad määravad kindlaks, kas objekte kasutatakse või mitte. Kui neid enam ei kasutata, vabastatakse mälu ja seda saab hiljem kasutada.
Joonis 01: prügivedaja ja hävitaja
Programmi käivitamisel eraldatakse mäluplokid süsteemimälu kogumist. Seejärel täidab programm ülesandeid selle mälu abil. Kui programmi täitmine on lõppenud, selgitab prügikoguja välja, kas programmi jaoks eraldatud mäluplokid on hädavajalikud või mitte. Kui neid pole vaja, tagastatakse need mäluplokid süsteemi. Niisiis, prügikoguja saab programmis loodud objekte jälgida. Need mäluplokid, mida enam ei vajata, saadetakse tagasi süsteemi mälust. Selle protsessi peamine eelis on kinnitus, et programmeerija ei pea keskenduma mälu otsimisele. See tasakaalustab jõudlust ja mälukasutust.
Hävitaja on klassi eriliikmete funktsioon. Sellele viidatakse alati, kui objekt väljub rakendusalast. Objekti saab hävitada funktsiooni lõppedes või programmi täitmise lõppedes. Hävitajal on sama nimi kui klassi nimega. Objekti loomiseks kasutatakse konstruktorit. See võib parameetreid aktsepteerida. Ehitajal võivad olla ka tagasiväärtused. Kuid hävitajas pole tagastamise tüüpi ega aktsepteeritavaid parameetreid. Klass võib koosneda ainult ühest hävitajast. Hävitajale viidatakse sildi Tilde abil. Kui klassi nimi on õpilane, on hävitajaks ~ õpilane () .
Prügikoguja otsib esemeid, mida enam ei vajata. See tagab objektide, mida programm enam ei kasuta, hävitamise. See nõuab hävitajalt mälu vabastamist ja ressursside otsimist. Destruktorid on kasulikud mälu vabastamiseks, failide sulgemiseks, võrguressursside vabastamiseks ja andmebaasiühenduste sulgemiseks. Enamikus programmeerimiskeeltes ei ole hävitajat vaja kirjutada, kuna prügikoguja kutsub vaikekonstruktori üksi. Kui programmeerija on teinud dünaamilise mälu jaotuse, kasutades viiteid keeles, nagu C ++, siis peaks ta enne objekti hävitamist kirjutama hävitaja mälu vabastamiseks.
Prügivedu vs hävitaja | |
Prügivedu on tarkvara, mis täidab automaatset mäluhaldust. | Hävitaja on spetsiaalne meetod, mida eseme hävitamise ajal kutsub prügivedaja. |
Tüüp | |
Prügivedu on tarkvara. | Hävitaja on meetod. |
Prügivedu ja hävitaja on mälu vabastamisega seotud kaks mõistet. Selles artiklis käsitleti erinevust prügivedaja ja hävitaja vahel. Prügikoguja ja hävitaja erinevus seisneb selles, et prügikoguja on tarkvara, mis teostab automaatset mäluhaldust, samas kui hävitaja on spetsiaalne meetod, mida prügivedaja kutsub objekti hävitamise ajal.
Selle artikli PDF-versiooni saate alla laadida ja seda võrguühenduseta otstarbel kasutada tsitaatide märkuse kohaselt. Laadige PDF-fail alla siit: Erinevus prügivedaja ja hävitaja vahel
1.lyndapodcast. “Kuidas C # prügivedu töötab? lynda. Comi õpetus. ” Kuidas C # prügivedu töötab? lynda.Com õpetus, LinkedIn õppelahendused, 19. september 2011. Saadaval siin
2.Destruktorid C-s. ” GeeksforGeeks, 27. mai 2017. Saadaval siin
3.Jain, Shubham. “Prügikoguja ja hävitaja C # -s.” C # nurk. Saadaval siin