Skillnaden mellan sopsamlare och destruktör

Innehållsförteckning:

Skillnaden mellan sopsamlare och destruktör
Skillnaden mellan sopsamlare och destruktör

Video: Skillnaden mellan sopsamlare och destruktör

Video: Skillnaden mellan sopsamlare och destruktör
Video: Finalize vs Dispose | C# Interview Questions 2024, Juli
Anonim

Nyckelskillnad – Garbage Collector vs Destructor

De flesta programmeringsspråk stöder objektorienterad programmering. Det är en metod för att bygga ett program eller en programvara med hjälp av objekt. Ett objekt skapas med en klass, så det är en instans av en klass. En klass ger beskrivningen av vad objektet ska bestå av. När du skapar objekt tilldelas minne för objekten. Det tilldelade minnet bör frigöras i slutet av programkörningen för att återanvända det minnet för något annat objekt. Programmeringsspråk som Java och C. NET använder skräpsamlare för minneshantering medan språk som C och C++ kräver att programmeraren hanterar minneshantering. Den nödvändiga mängden minne bör allokeras, och i slutet av exekveringen bör minnet frigöras. Garbage collector och destructor används för att frigöra minne. Den viktigaste skillnaden mellan sopsamlaren och destruktören är att en sopsamlare är en programvara som utför automatisk minneshantering medan en destructor är en speciell metod som anropas av sopsamlaren under förstörelsen av objektet.

Vad är en sophämtare?

Vissa programmeringsspråk har hanterade kodmiljöer. I programmeringsspråken Java och C utförs automatisk minneshantering. Programmeraren behöver inte frigöra minnet som används av objekten. Det är lättare för dem att utveckla även komplexa system eftersom minneshanteringen sker automatiskt. I programmeringsspråk som C, C++ och Objective C, bör programmet släppa minnet för objekten tillbaka till systemet. Språk som Java och C kan lista ut de objekt som inte längre används. Efteråt släpper de minnet som tilldelats för dessa objekt tillbaka till systemet.

I programmeringsspråken C och Java, om det finns en klass som heter Student, kan ett objekt skapas med Student s=new Student (); Den "nya" används för att skapa en instans av Studentklass. Den allokerar minne i systemet. "S" hänvisar till minnesblocket som tilldelats för det objektet. Språkmiljöerna identifierar om objekten används eller inte. Om de inte används ytterligare frigörs minnet och kan användas senare.

Skillnaden mellan Garbage Collector och Destructor
Skillnaden mellan Garbage Collector och Destructor

Figur 01: Garbage Collector and Destructor

När ett program körs tilldelas minnesblocken från systemminnespoolen. Sedan utför programmet uppgifterna med det minnet. När programkörningen är över, räknar sopsamlaren ut om de tilldelade minnesblocken för programmet är väsentliga eller inte. Om de inte krävs, returneras dessa minnesblock till systemet. Så sopsamlaren kan spåra de skapade objekten i programmet. Minnesblocken som inte längre behövs skickas tillbaka till systemminnespoolen. Den största fördelen med denna process är att bekräfta att programmeraren inte behöver koncentrera sig på minnesdeallokeringen. Den balanserar prestanda och minnesanvändning.

Vad är en Destructor?

En destruktor är en speciell medlemsfunktion i en klass. Det anropas när objektet går utanför räckvidden. Objektet kan förstöras när en funktion avslutas eller i slutet av programkörningen. Destruktorn har samma namn som klassnamnet. Konstruktorn används för att skapa objektet. Den kan acceptera parametrar. Konstruktören kan också ha returvärden. Men i en Destructor finns det ingen returtyp eller accepterande parametrar. En klass kan bara bestå av en förstörare. En destruktör hänvisas med tilde-tecknet. Om klassens namn är Student, är förstöraren ~Student () {}.

Sopsamlaren letar efter de föremål som inte längre behövs. Det säkerställer att de objekt som inte längre används av programmet ska förstöras. Den anropar destruktören att frigöra minnet och att deallokera resurserna. Destruktorer är användbara för att frigöra minne, stänga filer, frigöra nätverksresurser och för att stänga databasanslutningar. I de flesta programmeringsspråk är det inte nödvändigt att skriva destruktorn eftersom sopsamlaren anropar standardkonstruktören på egen hand. Om programmeraren har gjort någon dynamisk minnesallokering med hjälp av pekare i ett språk som C++, bör han skriva en destruktor för att frigöra minne innan objektet förstörs.

Vad är likheten mellan garbage Collector och Destructor?

Både Garbage Collector och Destructor används för att frigöra minne som inte längre behövs för programmet

Vad är skillnaden mellan garbage Collector och Destructor?

Garbage Collector vs Destructor

En garbage collector är en programvara som utför automatisk minneshantering. En destruktör är en speciell metod som anropas av sophämtaren under förstörelsen av föremålet.
Typ
En sophämtare är en programvara. En destruktör är en metod.

Sammanfattning – Garbage Collector vs Destructor

Sopsamlare och destruktör är två termer förknippade med att frigöra minne. Den här artikeln diskuterade skillnaden mellan Garbage Collector och destructor. Skillnaden mellan sopsamlaren och destruktören är att en garbage collector är en programvara som utför automatisk minneshantering medan en destructor är en speciell metod som anropas av garbage collector under förstörelsen av föremålet.

Ladda ned PDF-filen av Garbage Collector vs Destructor

Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här: Difference Between Garbage Collector and Destructor

Rekommenderad: