Fő különbség – Szemétgyűjtő vs Destructor
A legtöbb programozási nyelv támogatja az objektumorientált programozást. Ez egy program vagy szoftver objektumok felhasználásával történő felépítésének módszere. Egy objektum egy osztály használatával jön létre, tehát egy osztály példánya. Egy osztály leírja, hogy miből kell állnia az objektumnak. Objektumok létrehozásakor memória kerül lefoglalásra az objektumok számára. A lefogl alt memóriát fel kell szabadítani a programvégrehajtás végén, hogy a memóriát újra felhasználhassuk valamilyen más objektumhoz. Az olyan programozási nyelvek, mint a Java és a C. NET, szemétgyűjtőket használnak a memóriakezeléshez, míg az olyan nyelvek, mint a C és C++, megkövetelik, hogy a programozó kezelje a memóriakezelést. Le kell foglalni a szükséges mennyiségű memóriát, és a végrehajtás végén fel kell szabadítani a memóriát. A szemétgyűjtő és romboló a memória felszabadítására szolgál. A legfontosabb különbség a szemétgyűjtő és a destruktor között az, hogy a szemétgyűjtő egy olyan szoftver, amely automatikus memóriakezelést hajt végre, míg a destruktor egy speciális módszer, amelyet a szemétgyűjtő hív meg az objektum megsemmisítése során.
Mi az a szemétgyűjtő?
Néhány programozási nyelv rendelkezik kezelt kódkörnyezetekkel. 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. Még bonyolult rendszereket is könnyebben fejleszthetnek, mert a memóriakezelés automatikusan történik. A C, C++ és Objective C programozási nyelvekben a programnak vissza kell engednie az objektumok memóriáját a rendszernek. Az olyan nyelvek, mint a Java és a C, képesek kitalálni a már nem használt objektumokat. Ezt követően visszaadják az objektumokhoz lefogl alt memóriát a rendszernek.
A C és a Java programozási nyelvekben, ha van Student nevű osztály, akkor a Student segítségével lehet objektumot létrehozni s=new Student (); Az „új” a Hallgatói osztály példányának létrehozására szolgál. Lefoglalja a memóriát a rendszerben. Az „s” az objektumhoz lefogl alt memóriablokkra utal. A nyelvi környezetek azonosítják, hogy az objektumok használatban vannak-e vagy sem. Ha nem használják tovább, akkor a memória felszabadul, és később felhasználható.
01. ábra: Szemétgyűjtő és romboló
A program futtatásakor a memóriablokkok a rendszermemóriakészletből kerülnek lefoglalásra. Ezután a program ezt a memóriát használva hajtja végre a feladatokat. Amikor a program végrehajtása véget ért, a szemétgyűjtő megállapítja, hogy a program számára lefogl alt memóriablokkok elengedhetetlenek-e vagy sem. Ha nincs rájuk szükség, akkor ezek a memóriablokkok visszakerülnek a rendszerbe. Így a szemétgyűjtő nyomon tudja követni a programban létrehozott objektumokat. A már nem szükséges memóriablokkok visszaküldésre kerülnek a rendszermemóriakészletbe. Ennek a folyamatnak a fő előnye annak megerősítése, hogy a programozónak nem kell a memóriafelszabadításra koncentrálnia. Kiegyensúlyozza a teljesítményt és a memóriahasználatot.
Mi az a destruktor?
A destruktor egy osztály speciális tagfüggvénye. Meghívásra kerül, amikor az objektum kikerül a hatókörből. Az objektum megsemmisülhet egy függvény végén vagy a programvégrehajtás végén. A destruktor neve megegyezik az osztálynévvel. A konstruktort az objektum létrehozására használják. Paramétereket tud fogadni. A konstruktornak is lehetnek visszatérési értékei. De a Destructorban nincs visszatérési típus vagy paraméterek elfogadása. Egy osztály csak egy destruktorból állhat. A destruktorra a tilde jellel hivatkozunk. Ha az osztály neve Diák, akkor a destruktor ~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 objektumok megsemmisüljenek. Felhívja a destruktort a memória felszabadítására és az erőforrások felszabadítására. A destruktorok hasznosak a memória felszabadításához, a fájlok bezárásához, a hálózati erőforrások felszabadításához és az adatbázis-kapcsolatok bezárásához. A legtöbb programozási nyelvben nem szükséges a destruktort írni, mert a szemétgyűjtő magától meghívja az alapértelmezett konstruktort. Ha a programozó bármilyen dinamikus memóriafoglalást végzett mutatókkal, például C++ nyelven, akkor írjon egy destruktort, amely felszabadítja a memóriát, mielőtt az objektum megsemmisülne.
Mi a hasonlóság a szemétgyűjtő és a romboló között?
Mind a Garbage Collector, mind a Destructor a programhoz már nem szükséges memória felszabadítására szolgál
Mi a különbség a szemétgyűjtő és a romboló között?
Garbage Collector vs Destructor |
|
A szemétgyűjtő egy olyan szoftver, amely automatikus memóriakezelést hajt végre. | 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. |
Összefoglaló – Szemétgyűjtő vs Destructor
A szemétgyűjtő és a destruktor a memória felszabadításával kapcsolatos két kifejezés. Ez a cikk a Garbage Collector és a destructor közötti különbséget tárgy alta. A szemétgyűjtő és a destruktor közötti különbség az, hogy a szemétgyűjtő egy olyan szoftver, amely automatikus memóriakezelést végez, míg a destruktor egy speciális módszer, amelyet a szemétgyűjtő hív meg az objektum megsemmisítése során.
Töltse le a Garbage Collector vs Destructor PDF-fájlját
A cikk PDF-verzióját letöltheti, és offline célokra használhatja az idézési megjegyzés szerint. Kérjük, töltse le a PDF verziót innen: Különbség a szemétgyűjtő és a romboló között