Roskatkeräimen ja Destructorin ero

Sisällysluettelo:

Roskatkeräimen ja Destructorin ero
Roskatkeräimen ja Destructorin ero

Video: Roskatkeräimen ja Destructorin ero

Video: Roskatkeräimen ja Destructorin ero
Video: The Ants: Underground Kingdom — Руководство для начинающих — Марш-кепка, дислокация и защита 2024, Marraskuu
Anonim

Avainero – Roskienkerääjä vs Destructor

Useimmat ohjelmointikielet tukevat olioohjelmointia. Se on menetelmä ohjelman tai ohjelmiston rakentamiseen objektien avulla. Objekti luodaan luokan avulla, joten se on luokan esiintymä. Luokka antaa kuvauksen siitä, mistä objektin tulisi koostua. Objekteja luotaessa kohteille varataan muistia. Varattu muisti tulee vapauttaa ohjelman suorituksen lopussa, jotta muistia voidaan käyttää uudelleen johonkin muuhun objektiin. Ohjelmointikielet, kuten Java ja C. NET, käyttävät roskankerääjiä muistin hallintaan, kun taas kielet, kuten C ja C++, edellyttävät ohjelmoij alta muistinhallintaa. Tarvittava määrä muistia tulee varata, ja suorituksen lopussa muisti on vapautettava. Jätteenkerääjää ja tuhoajaa käytetään muistin vapauttamiseen. Keskeinen ero roskienkeräimen ja tuhoajan välillä on se, että roskakeräin on ohjelmisto, joka suorittaa automaattisen muistinhallinnan, kun taas tuhoaja on erityinen menetelmä, jonka roskankerääjä kutsuu esineen tuhoamisen aikana.

Mikä on roskakori?

Joissakin ohjelmointikielissä on hallittuja koodiympäristöjä. Ohjelmointikielissä Java ja C suoritetaan automaattinen muistinhallinta. Ohjelmoijan ei tarvitse vapauttaa objektien käyttämää muistia. Heidän on helpompi kehittää monimutkaisiakin järjestelmiä, koska muistinhallinta tapahtuu automaattisesti. Ohjelmointikielissä, kuten C, C++ ja Objective C, ohjelman tulee vapauttaa objektien muisti takaisin järjestelmään. Kielet, kuten Java ja C, voivat selvittää objektit, joita ei enää käytetä. Myöhemmin he vapauttavat näille objekteille varatun muistin takaisin järjestelmään.

Jos ohjelmointikielissä C ja Java on luokka nimeltä Student, niin objekti voidaan luoda komennolla Student s=new Student (); "Uutta" käytetään luomaan opiskelijaluokan esiintymä. Se varaa muistia järjestelmässä. "S" viittaa kyseiselle objektille varattuun muistilohkoon. Kieliympäristöt tunnistavat, ovatko objektit käytössä vai eivät. Jos niitä ei käytetä enempää, muisti vapautuu ja sitä voidaan käyttää myöhemmin.

Ero roskien kerääjän ja tuhoajan välillä
Ero roskien kerääjän ja tuhoajan välillä

Kuva 01: Roskien kerääjä ja hävittäjä

Kun ohjelmaa suoritetaan, muistilohkot varataan järjestelmän muistivarastosta. Sitten ohjelma suorittaa tehtävät käyttämällä tätä muistia. Kun ohjelman suoritus on ohi, roskankerääjä selvittää, ovatko ohjelmalle varatut muistilohkot välttämättömiä vai eivät. Jos niitä ei tarvita, muistilohkot palautetaan järjestelmään. Joten roskienkerääjä voi seurata ohjelmassa luotuja objekteja. Muistilohkot, joita ei enää tarvita, lähetetään takaisin järjestelmän muistivarastoon. Tämän prosessin tärkein etu on varmistaa, että ohjelmoijan ei tarvitse keskittyä muistin purkamiseen. Se tasapainottaa suorituskykyä ja muistin käyttöä.

Mikä on Destructor?

Destruktor on luokan erityinen jäsenfunktio. Sitä kutsutaan aina, kun objekti menee soveltamisalan ulkopuolelle. Objekti voidaan tuhota funktion päättyessä tai ohjelman suorituksen lopussa. Destruktorilla on sama nimi kuin luokan nimellä. Konstruktoria käytetään objektin luomiseen. Se voi hyväksyä parametreja. Rakentajalla voi olla myös palautusarvoja. Mutta Destructorissa ei ole palautustyyppiä tai hyväksyviä parametreja. Luokassa voi olla vain yksi tuhoaja. Tuhoajaan viitataan tilde-merkillä. Jos luokan nimi on Student, niin tuhoaja on ~Student () {}.

Roskatkeräilijä etsii esineitä, joita ei enää tarvita. Se varmistaa, että objektit, joita ohjelma ei enää käytä, tuhotaan. Se kutsuu tuhoajaa vapauttamaan muistin ja jakamaan resurssit. Destructorit ovat hyödyllisiä muistin vapauttamiseen, tiedostojen sulkemiseen, verkkoresurssien vapauttamiseen ja tietokantayhteyksien sulkemiseen. Useimmissa ohjelmointikielissä destruktoria ei tarvitse kirjoittaa, koska roskienkerääjä kutsuu oletuskonstruktorin itse. Jos ohjelmoija on tehnyt dynaamisen muistin varauksen käyttämällä osoittimia jollakin kielellä, kuten C++, hänen tulee kirjoittaa destruktori vapauttaakseen muistia ennen kuin objekti tuhoutuu.

Mikä on samank altaisuus roskienkerääjän ja tuhoajan välillä?

Sekä Garbage Collectoria että Destructoria käytetään vapauttamaan muistia, jota ohjelma ei enää tarvitse

Mitä eroa on roskienkerääjän ja tuhoajan välillä?

Garbage Collector vs Destructor

Roskatkeräys on ohjelmisto, joka suorittaa automaattisen muistinhallinnan. Tuhoaja on erityinen menetelmä, jonka roskankerääjä kutsuu esineen tuhoamisen aikana.
Tyyppi
Roskatkeräys on ohjelmisto. Tuhoaja on menetelmä.

Yhteenveto – Roskienkerääjä vs Destructor

Roskatkerääjä ja tuhoaja ovat kaksi termiä, jotka liittyvät muistin vapauttamiseen. Tässä artikkelissa käsiteltiin eroa roskienkerääjän ja tuhoajan välillä. Ero roskakeräimen ja tuhoajan välillä on se, että roskakeräin on ohjelmisto, joka suorittaa automaattisen muistinhallinnan, kun taas tuhoaja on erityinen menetelmä, jonka roskankerääjä kutsuu esineen tuhoamisen aikana.

Lataa Garbage Collector vs Destructorin PDF-tiedosto

Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainaushuomautuksen mukaisesti. Lataa PDF-versio tästä: Ero roskienkerääjän ja tuhoajan välillä

Suositeltava: