Tärkein ero - roskakorjaaja vs hävittäjä
Useimmat ohjelmointikielet tukevat olio-ohjelmointia. Se on menetelmä rakentaa ohjelma tai ohjelmisto esineitä käyttämällä. Objekti luodaan luokalla, joten se on luokan esiintymä. Luokka antaa kuvauksen siitä, mistä objektin tulisi koostua. Kun luot objekteja, muille varataan esineitä. Varattu muisti tulisi vapauttaa ohjelman suorituksen lopussa, jotta muisti voidaan käyttää uudelleen jollekin muulle objektille. Ohjelmointikielet, kuten Java ja C #. NET, käyttävät roskien keräilijöitä muistin hallintaan, kun taas kielet, kuten C ja C ++, vaativat ohjelmoijan käsittelemään muistin hallintaa. Tarvittava määrä muistia tulisi allokoida ja suorituksen lopussa muisti vapauttaa. Roskakeräintä ja hävittäjää käytetään muistin vapauttamiseen. Tärkein ero roskien keräilijän ja hävittäjän välillä on se, että roskien kerääjä on ohjelmisto, joka suorittaa automaattisen muistinhallinnan, kun taas hävittäjä on erityinen menetelmä, jonka roskakorin kutsuu kohteen tuhoamisen aikana.
SISÄLLYS
1. Yleiskatsaus ja keskeinen ero
2. Mikä on roskakorjaaja
3. Mikä on hävittäjä
4. Roskasäiliön ja hävittäjän yhtäläisyydet
5. Vertailu vierekkäin - Roskankerääjä ja hävittäjä taulukkomuodossa
6. Yhteenveto
Mikä on roskien keräilijä?
Jotkut ohjelmointikielet ovat hallinneet koodiympäristöjä. Ohjelmointikielillä Java ja C # suoritetaan automaattinen muistinhallinta. Ohjelmoijan ei tarvitse vapauttaa esineiden käyttämää muistia. Heidän on helpompi kehittää jopa monimutkaisia järjestelmiä, koska muistin hallinta tapahtuu automaattisesti. Ohjelmointikielillä, kuten C, C ++ ja Tavoite C, ohjelman tulisi vapauttaa objektien muisti takaisin järjestelmään. Kielet, kuten Java ja C #, voivat selvittää objektit, joita ei enää käytetä. Sen jälkeen he vapauttavat kyseisille kohteille varatun muistin takaisin järjestelmään.
Ohjelmointikielissä C # ja Java, jos on luokka nimeltä Student, objekti voidaan luoda käyttämällä Student s = new Student (); 'Uutta' käytetään luomaan Opiskelija-luokan ilmentymä. Se jakaa muistia järjestelmään. 'S' tarkoittaa kyseiselle objektille varattua muistilohkoa. Kieliympäristöt tunnistavat, käytetäänkö objekteja vai ei. Jos niitä ei käytetä edelleen, muisti vapautuu ja sitä voidaan käyttää myöhemmin.
Kuva 01: Roskasäiliö ja hävittäjä
Kun suoritat ohjelmaa, muistilohkot varataan järjestelmän muistivarastosta. Sitten ohjelma suorittaa tehtävät kyseisen muistin avulla. Kun ohjelman toteutus on ohi, roskien kerääjä selvittää, ovatko ohjelman varatut muistilohkot välttämättömiä. Jos niitä ei tarvita, nämä muistilohkot palautetaan järjestelmään. Joten roskien kerääjä voi seurata luotuja objekteja ohjelmassa. Muistilohkot, joita ei enää tarvita, lähetetään takaisin järjestelmän muistivarastoon. Tämän prosessin tärkein etu on vahvistaa, että ohjelmoijan ei tarvitse keskittyä muistin jakamiseen. Se tasapainottaa suorituskykyä ja muistin käyttöä.
Mikä on tuhoaja?
Destruktori on luokan erityinen jäsenfunktio. Sitä käytetään aina, kun objekti poistuu suoja-alasta. Kohde voidaan tuhota, kun toiminto loppuu tai ohjelman suorituksen lopussa. Destruktorilla on sama nimi kuin luokan nimellä. Rakentajaa käytetään objektin luomiseen. Se voi hyväksyä parametrit. Rakentajalla voi olla myös paluuarvoja. Mutta Destructorissa ei ole palautustyyppiä tai parametrien hyväksymistä. Luokka voi koostua vain yhdestä destruktorista. Hävittäjä viitataan tilde-merkillä. Jos luokan nimi on Student, niin tuhoaja on ~ Student () {}.
Jätteenkerääjä etsii esineitä, joita ei enää tarvita. Se varmistaa, että objektit, joita ohjelma ei enää käytä, tuhotaan. Se kehottaa tuhoajaa vapauttamaan muistin ja jakamaan resurssit. Hävittäjät ovat hyödyllisiä vapauttamaan muistia, sulkemaan tiedostoja, vapauttamaan verkkoresursseja ja sulkemaan tietokantayhteydet. Useimmissa ohjelmointikielissä tuhoajaa ei tarvitse kirjoittaa, koska roskien kerääjä kutsuu oletusrakentajan yksin. Jos ohjelmoija on tehnyt minkä tahansa dynaamisen muistin allokoinnin osoittimilla kielellä, kuten C ++, hänen tulisi kirjoittaa tuhoaja muistin vapauttamiseksi ennen kohteen tuhoutumista.
Mikä on roskasäiliön ja hävittäjän yhtäläisyys?
Sekä Garbage Collectoria että Destructoria käytetään muistin vapauttamiseen, jota ei enää tarvita ohjelmassa
Mikä on ero roskien kerääjän ja hävittäjän välillä?
Erilainen artikkeli keskellä taulukkoa
Roskankerääjä ja hävittäjä |
|
Roskakeräin on ohjelmisto, joka suorittaa automaattisen muistinhallinnan. | Destruktori on erityinen menetelmä, jonka roskien kerääjä kutsuu kohteen tuhoutumisen aikana. |
Tyyppi | |
Roskakeräin on ohjelmisto. | Destruktori on menetelmä. |
Yhteenveto - roskat kerääjä ja hävittäjä
Jätteenkerääjä ja hävittäjä ovat kaksi termiä, jotka liittyvät muistin vapauttamiseen. Tässä artikkelissa keskusteltiin roskien kerääjän ja hävittäjän välisestä erosta. Ero roskien keräilijän ja hävittäjän välillä on, että roskien kerääjä on ohjelmisto, joka suorittaa automaattisen muistinhallinnan, kun taas tuhoaja on erityinen menetelmä, jonka roskakorin kutsuu kohteen tuhoamisen aikana.
Lataa PDF: Garbage Collector vs Destructor
Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainausviestin mukaan. Lataa PDF-versio täältä: Ero Garbage Collectorin ja Destructorin välillä