Rozdíl mezi Garbage Collector a Destructor

Obsah:

Rozdíl mezi Garbage Collector a Destructor
Rozdíl mezi Garbage Collector a Destructor

Video: Rozdíl mezi Garbage Collector a Destructor

Video: Rozdíl mezi Garbage Collector a Destructor
Video: Finalize vs Dispose | C# Interview Questions 2024, Červenec
Anonim

Klíčový rozdíl – Garbage Collector vs Destructor

Většina programovacích jazyků podporuje objektově orientované programování. Jedná se o metodologii vytváření programu nebo softwaru pomocí objektů. Objekt je vytvořen pomocí třídy, takže je instancí třídy. Třída poskytuje popis toho, z čeho by se měl objekt skládat. Při vytváření objektů je pro objekty alokována paměť. Alokovaná paměť by měla být uvolněna na konci provádění programu, aby byla znovu použita pro nějaký jiný objekt. Programovací jazyky jako Java a C. NET používají ke správě paměti garbage collectors, zatímco jazyky jako C a C++ vyžadují, aby se správou paměti zabýval programátor. Mělo by být přiděleno potřebné množství paměti a na konci provádění by měla být paměť uvolněna. K uvolnění paměti se používá Garbage collector a destructor. Klíčový rozdíl mezi garbage collectorem a destruktorem je ten, že garbage collector je software, který provádí automatickou správu paměti, zatímco destruktor je speciální metoda volaná garbage collectorem během ničení objektu.

Co je sběrač odpadu?

Některé programovací jazyky mají prostředí spravovaného kódu. V programovacích jazycích Java a C se provádí automatická správa paměti. Programátor nemusí uvolňovat paměť využívanou objekty. Je pro ně jednodušší vyvíjet i složité systémy, protože správa paměti probíhá automaticky. V programovacích jazycích jako C, C++ a Objective C by měl program uvolnit paměť objektů zpět do systému. Jazyky jako Java a C dokážou zjistit objekty, které se již nepoužívají. Poté uvolní paměť přidělenou pro tyto objekty zpět do systému.

V programovacích jazycích C a Java, pokud existuje třída nazvaná Student, lze objekt vytvořit pomocí Student s=new Student (); „Nový“se používá k vytvoření instance třídy Student. Přiděluje paměť v systému. Písmeno „s“odkazuje na paměťový blok přidělený tomuto objektu. Jazyková prostředí identifikují, zda jsou objekty používány nebo ne. Pokud se dále nepoužívají, paměť se uvolní a lze ji použít později.

Rozdíl mezi Garbage Collector a Destructor
Rozdíl mezi Garbage Collector a Destructor

Obrázek 01: Garbage Collector and Destructor

Při spuštění programu jsou bloky paměti alokovány ze systémové paměti. Poté program provede úkoly pomocí této paměti. Když je provádění programu u konce, garbage collector zjistí, zda jsou přidělené bloky paměti pro program nezbytné nebo ne. Pokud nejsou vyžadovány, jsou tyto paměťové bloky vráceny do systému. Takže sběrač odpadu může sledovat vytvořené objekty v programu. Paměťové bloky, které již nejsou potřeba, jsou odeslány zpět do systémové oblasti paměti. Hlavní výhodou tohoto procesu je potvrzení, že se programátor nemusí soustředit na dealokaci paměti. Vyvažuje výkon a využití paměti.

Co je to destruktor?

Destruktor je speciální členská funkce třídy. Vyvolá se vždy, když objekt překročí rozsah. Objekt může být zničen při ukončení funkce nebo na konci provádění programu. Destruktor má stejný název jako název třídy. K vytvoření objektu se používá konstruktor. Může přijímat parametry. Konstruktor může mít také návratové hodnoty. Ale v destruktoru neexistuje žádný návratový typ ani přijímací parametry. Třída se může skládat pouze z jednoho destruktoru. Destruktor je označován pomocí znaku vlnovky. Pokud je název třídy Student, pak je destruktor ~Student () {}.

Sběrač odpadu hledá objekty, které již nejsou potřeba. Zajišťuje, že objekty, které již program nepoužívá, by měly být zničeny. Volá destruktor, aby uvolnil paměť a uvolnil prostředky. Destruktory jsou užitečné pro uvolnění paměti, uzavření souborů, uvolnění síťových prostředků a uzavření databázových připojení. Ve většině programovacích jazyků není nutné zapisovat destruktor, protože garbage collector sám o sobě volá výchozí konstruktor. Pokud programátor provedl jakoukoli dynamickou alokaci paměti pomocí ukazatelů v jazyce jako C++, měl by napsat destruktor, který uvolní paměť před zničením objektu.

Jaká je podobnost mezi Garbage Collector a Destructor?

Jak Garbage Collector, tak Destructor se používají k uvolnění paměti, kterou již program nepotřebuje

Jaký je rozdíl mezi Garbage Collector a Destructor?

Garbage Collector vs Destructor

Garbage collector je software, který provádí automatickou správu paměti. Destruktor je speciální metoda, kterou volá garbage collector během ničení objektu.
Typ
Sběrač odpadu je software. Destruktor je metoda.

Shrnutí – Garbage Collector vs Destructor

Garbage collector a destructor jsou dva pojmy spojené s uvolňováním paměti. Tento článek pojednával o rozdílu mezi Garbage Collector a destructor. Rozdíl mezi garbage collectorem a destruktorem je v tom, že garbage collector je software, který provádí automatickou správu paměti, zatímco destruktor je speciální metoda volaná garbage collectorem během ničení objektu.

Stáhněte si PDF Garbage Collector vs Destructor

Verzi tohoto článku si můžete stáhnout ve formátu PDF a použít ji pro offline účely podle citace. Stáhněte si prosím PDF verzi zde: Rozdíl mezi Garbage Collector a Destructor

Doporučuje: