Különbség A Szemétgyűjtő és A Megsemmisítő Között

Tartalomjegyzék:

Különbség A Szemétgyűjtő és A Megsemmisítő Között
Különbség A Szemétgyűjtő és A Megsemmisítő Között
Anonim

Főbb különbség - Szemétgyűjtő vs Destructor

A legtöbb programozási nyelv támogatja az objektumorientált programozást. Ez egy módszertan egy program vagy szoftver objektumok felhasználásával történő felépítésére. Az objektum egy osztály felhasználásával jön létre, tehát egy osztály példánya. Egy osztály leírja, hogy az objektumnak miből kell állnia. Objektumok létrehozásakor memóriát osztanak ki az objektumokhoz. A lefoglalt memóriát a program végrehajtása végén fel kell szabadítani, hogy újra felhasználhassa ezt a memóriát más objektumokhoz. A programozási nyelvek, mint például a Java és a C #. NET, szemétgyűjtőket használnak a memóriakezeléshez, míg a C és C ++ nyelvekhez a programozónak szüksége van a memóriakezelésre. A szükséges memóriamennyiséget el kell osztani, és a végrehajtás végén fel kell szabadítani a memóriát. A szemétgyűjtőt és a rombolót a memória felszabadítására használják. A legfontosabb különbség a szemétszedő és a romboló között az, hogy a szemétgyűjtő olyan szoftver, amely automatikus memóriakezelést hajt végre, míg a romboló egy speciális módszer, amelyet a szemétgyűjtő hív az objektum megsemmisítése során.

TARTALOM

1. Áttekintés és a legfontosabb különbség

2. Mi a szemétgyűjtő

3. Mi a megsemmisítő

4. A szemétgyűjtő és a megsemmisítő közötti hasonlóság

5. Egymás melletti összehasonlítás - Szemétgyűjtő és ártalmatlanító táblázatos formában

6. Összefoglalás

Mi az a szemétgyűjtő?

Egyes programozási nyelvek kezeltek kódkörnyezeteket. A Java és C # programozási nyelvekben automatikus memóriakezelést hajtanak végre. A programozónak nem kell felszabadítania az objektumok által használt memóriát. Számukra könnyebb még összetett rendszereket is fejleszteni, mert a memóriakezelés automatikusan megtörténik. Az olyan programozási nyelvekben, mint a C, C ++ és C cél, a programnak vissza kell engednie az objektumok memóriáját a rendszerbe. Az olyan nyelvek, mint a Java és a C #, ki tudják találni a már nem használt objektumokat. Ezután visszaengedik az objektumok számára lefoglalt memóriát a rendszerben.

A C # és a Java programozási nyelvekben, ha van egy Student nevű osztály, akkor egy objektum létrehozható a Student s = new Student () használatával; Az „új” felhasználásával létrehozzák a Student osztály egy példányát. Kiosztja a memóriát a rendszerben. Az 's' az adott objektum számára lefoglalt memóriablokkra utal. A nyelvi környezetek azonosítják, hogy az objektumokat használják-e vagy sem. Ha nem használják tovább, akkor a memória felszabadul, és később felhasználható.

Különbség a szemétgyűjtő és a megsemmisítő között
Különbség a szemétgyűjtő és a megsemmisítő között

01. ábra: Szemétgyűjtő és megsemmisítő

Program futtatásakor a memória blokkok a rendszer memóriakészletéből kerülnek lefoglalásra. Ezután a program az adott memória segítségével hajtja végre a feladatokat. Amikor a program végrehajtása véget ér, a szemétgyűjtő kitalálja, hogy a program számára lefoglalt memóriablokkok elengedhetetlenek-e vagy sem. Ha nem szükségesek, akkor ezek a memóriablokkok visszakerülnek a rendszerbe. Tehát a szemétgyűjtő nyomon követheti a létrehozott objektumokat a programban. A már nem szükséges memóriablokkokat visszaküldik a rendszer memóriakészletébe. Ennek a folyamatnak az a fő előnye, hogy megerősíti, hogy a programozónak nem kell a memória elosztására koncentrálnia. Kiegyensúlyozza a teljesítményt és a memóriahasználatot.

Mi az a romboló?

A destruktor egy osztály speciális tagfüggvénye. Akkor hívják meg, amikor az objektum kimarad a hatókörből. Az objektum megsemmisülhet egy funkció lejártakor vagy a program végrehajtásának végén. A destruktor neve megegyezik az osztály nevével. A konstruktort használják az objektum létrehozására. El tudja fogadni a paramétereket. A konstruktornak lehetnek visszatérési értékei is. De a Destructorban nincs visszatérési típus vagy paraméterek elfogadása. Egy osztály csak egy destruktorból állhat. A destruktort a tilde jel használatával utalják. Ha az osztály neve Student, akkor a destructor ~ Student () {}.

A szemétgyűjtő megkeresi azokat a tárgyakat, amelyekre már nincs szükség. Biztosítja, hogy a program által már nem használt objektumokat megsemmisítsék. Felszólítja a rombolót, hogy engedje fel a memóriát és osztja el az erőforrásokat. A rombolók hasznosak a memória felszabadítására, a fájlok bezárására, a hálózati erőforrások felszabadítására és az adatbázis-kapcsolatok bezárására. A legtöbb programozási nyelvben nem szükséges megsemmisítőt írni, mert a szemétgyűjtő önmagában hívja meg az alapértelmezett konstruktort. Ha a programozó dinamikus memória-allokációt hajtott végre olyan mutatók segítségével, mint a C ++, akkor az objektum megsemmisítése előtt meg kell írnia egy destruktort a memória felszabadítására.

Mi a hasonlóság a szemétgyűjtő és a megsemmisítő között?

Mind a Garbage Collector, mind a Destructor memória felszabadítására szolgál, amelyre már nincs szükség a programhoz

Mi a különbség a szemétgyűjtő és a megsemmisítő között?

Különböző cikk a táblázat előtt

Szemétgyűjtő vs Destructor

A szemétgyűjtő olyan szoftver, amely automatikus memóriakezelést végez. A destruktor egy speciális módszer, amelyet a szemétgyűjtő hív meg az objektum megsemmisítése során.
típus
A szemétgyűjtő egy szoftver. A destruktor egy módszer.

Összegzés - Szemétgyűjtő vs Destructor

A szemétgyűjtő és a romboló két kifejezés kapcsolódik a memória felszabadításához. Ez a cikk a szemétgyűjtő és a romboló közötti különbséget tárgyalta. A különbség a szemétszedő és a romboló között az, hogy a szemétgyűjtő olyan szoftver, amely automatikus memóriakezelést végez, míg a romboló egy speciális módszer, amelyet a szemétgyűjtő hív az objektum megsemmisítése során.

Töltse le a Garbage Collector vs Destructor PDF-fájlt

A cikk PDF-verzióját letöltheti, és offline célokra is használhatja, az idézési megjegyzés szerint. Töltse le a PDF verziót itt: Különbség a szemétgyűjtő és a romboló között

Ajánlott: