Kľúčový rozdiel – Garbage Collector vs Destructor
Väčšina programovacích jazykov podporuje objektovo orientované programovanie. Je to metodológia na zostavenie programu alebo softvéru pomocou objektov. Objekt je vytvorený pomocou triedy, takže je inštanciou triedy. Trieda poskytuje popis toho, z čoho by mal objekt pozostávať. Pri vytváraní objektov je pre objekty alokovaná pamäť. Pridelená pamäť by sa mala uvoľniť na konci vykonávania programu, aby sa táto pamäť znovu použila pre nejaký iný objekt. Programovacie jazyky ako Java a C. NET používajú zberače odpadu na správu pamäte, zatiaľ čo jazyky ako C a C++ vyžadujú, aby sa správou pamäte zaoberal programátor. Potrebné množstvo pamäte by sa malo prideliť a na konci vykonávania by sa mala pamäť uvoľniť. Na uvoľnenie pamäte sa používa zberač odpadu a deštruktor. Kľúčový rozdiel medzi garbage collectorom a deštruktorom je v tom, že garbage collector je softvér, ktorý vykonáva automatickú správu pamäte, zatiaľ čo deštruktor je špeciálna metóda, ktorú volá garbage collector počas ničenia objektu.
Čo je to zberač odpadu?
Niektoré programovacie jazyky majú prostredia spravovaného kódu. V programovacích jazykoch Java a C sa vykonáva automatická správa pamäte. Programátor nemusí uvoľniť pamäť využívanú objektmi. Je pre nich jednoduchšie vyvíjať aj zložité systémy, pretože správa pamäte prebieha automaticky. V programovacích jazykoch ako C, C++ a Objective C by mal program uvoľniť pamäť objektov späť do systému. Jazyky ako Java a C dokážu rozpoznať objekty, ktoré sa už nepoužívajú. Potom uvoľnia pamäť pridelenú týmto objektom späť do systému.
V programovacích jazykoch C a Java, ak existuje trieda s názvom Študent, potom objekt možno vytvoriť pomocou Študent s=nový študent (); „Nový“sa používa na vytvorenie inštancie triedy Študent. Prideľuje pamäť v systéme. Písmeno „s“odkazuje na pamäťový blok pridelený pre tento objekt. Jazykové prostredia identifikujú, či sa objekty používajú alebo nie. Ak sa ďalej nepoužívajú, pamäť sa uvoľní a možno ju použiť neskôr.
Obrázok 01: Garbage Collector and Destructor
Pri spustení programu sú bloky pamäte alokované zo systémovej pamäte. Potom program vykoná úlohy pomocou tejto pamäte. Keď sa vykonávanie programu skončí, zberač odpadu zistí, či sú pridelené bloky pamäte pre program nevyhnutné alebo nie. Ak nie sú potrebné, tieto pamäťové bloky sa vrátia do systému. Takže zberač odpadu môže sledovať vytvorené objekty v programe. Pamäťové bloky, ktoré už nie sú potrebné, sa odošlú späť do oblasti systémovej pamäte. Hlavnou výhodou tohto procesu je potvrdenie, že programátor sa nemusí sústrediť na uvoľnenie pamäte. Vyvažuje výkon a využitie pamäte.
Čo je deštruktor?
Deštruktor je špeciálna členská funkcia triedy. Vyvolá sa vždy, keď objekt prekročí rozsah. Objekt môže byť zničený po ukončení funkcie alebo na konci vykonávania programu. Deštruktor má rovnaký názov ako názov triedy. Na vytvorenie objektu sa používa konštruktor. Môže akceptovať parametre. Konštruktor môže mať aj návratové hodnoty. Ale v deštruktore neexistuje návratový typ ani akceptujúce parametre. Trieda môže pozostávať iba z jedného deštruktora. Deštruktor sa označuje pomocou znaku vlnovky. Ak je názov triedy Študent, potom je deštruktor ~Student () {}.
Zberač odpadu hľadá predmety, ktoré už nie sú potrebné. Zabezpečuje, že objekty, ktoré už program nepoužíva, budú zničené. Zavolá deštruktor, aby uvoľnil pamäť a uvoľnil zdroje. Deštruktory sú užitočné na uvoľnenie pamäte, zatvorenie súborov, uvoľnenie sieťových zdrojov a na zatvorenie databázových pripojení. Vo väčšine programovacích jazykov nie je potrebné písať deštruktor, pretože zberač odpadu sám o sebe volá predvolený konštruktor. Ak programátor vykonal akúkoľvek dynamickú alokáciu pamäte pomocou ukazovateľov v jazyku ako C++, potom by mal napísať deštruktor na uvoľnenie pamäte pred zničením objektu.
Aká je podobnosť medzi zberačom odpadu a deštruktorom?
Garbage Collector aj Destructor sa používajú na uvoľnenie pamäte, ktorá už nie je pre program potrebná
Aký je rozdiel medzi zberačom odpadu a deštruktorom?
Garbage Collector vs Destructor |
|
Garbage collector je softvér, ktorý vykonáva automatickú správu pamäte. | Deštruktor je špeciálna metóda, ktorú volá zberač odpadu počas ničenia objektu. |
Typ | |
Zberač odpadu je softvér. | Deštruktor je metóda. |
Zhrnutie – Garbage Collector vs Destructor
Zberač odpadu a deštruktor sú dva pojmy spojené s uvoľňovaním pamäte. Tento článok diskutoval o rozdieloch medzi zberačom odpadu a deštruktorom. Rozdiel medzi zberačom odpadu a deštruktorom je v tom, že zberač odpadu je softvér, ktorý vykonáva automatickú správu pamäte, zatiaľ čo deštruktor je špeciálna metóda, ktorú volá zberač odpadu počas ničenia objektu.
Stiahnite si PDF súbor Garbage Collector vs Destructor
Verziu tohto článku si môžete stiahnuť vo formáte PDF a použiť ju na offline účely podľa citácie. Stiahnite si PDF verziu tu: Rozdiel medzi Garbage Collector a Destructor