Forskellen mellem affaldsopsamler og destruktør

Nøgleforskel - Garbage Collector vs Destructor
 

De fleste programmeringssprog understøtter objektorienteret programmering. Det er en metode til at opbygge et program eller en software ved hjælp af objekter. Et objekt oprettes ved hjælp af en klasse, så det er et eksempel på en klasse. En klasse giver beskrivelsen af, hvad objektet skal bestå af. Når du opretter objekter, tildeles hukommelse til objekterne. Den tildelte hukommelse skal frigives ved afslutningen af ​​programudførelsen for at genbruge den hukommelse til et andet objekt. Programmeringssprog som Java og C # .NET bruger affaldsopsamlere til hukommelsesstyring, mens sprog som C og C ++ kræver, at programmereren håndterer hukommelsesstyring. Den nødvendige mængde hukommelse skal allokeres, og ved udgangen af ​​udførelsen skal hukommelsen frigives. Affaldsopsamleren og destruktoren bruges til at frigive hukommelse. Det vigtigste forskel mellem affaldssamleren og destruktoren er det en skraldesamler er en software, der udfører automatisk hukommelsestyring, mens en destruktor er en speciel metode, der kaldes af skraldesamleren under ødelæggelse af objektet.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er en affaldsopsamler
3. Hvad er en Destructor
4. Ligheder mellem affaldsopsamler og destruktør
5. Sammenligning side ved side - Garbage Collector vs Destructor i tabelform
6. Resume

Hvad er en affaldsopsamler?

Nogle programmeringssprog har administrerede kodemiljøer. I programmeringssprog Java og C # udføres automatisk hukommelsesstyring. Programmereren behøver ikke at frigøre den hukommelse, som objekterne bruger. Det er lettere for dem at udvikle selv komplekse systemer, fordi hukommelsesstyringen udføres automatisk. I programmeringssprog som C, C ++ og Objekt C skal programmet frigive objekternes hukommelse tilbage til systemet. Sprog som Java og C # kan finde ud af de objekter, der ikke længere bruges. Derefter frigiver de hukommelsen, der er tildelt til disse objekter, tilbage til systemet.

I programmeringssprog C # og Java, hvis der er en klasse kaldet Student, kan der oprettes et objekt vha. Student s = new Student (); Det 'nye' bruges til at oprette en forekomst af studerende. Det tildeler hukommelse i systemet. 'S' henviser til hukommelsesblokken, der er tildelt til det objekt. Sprogmiljøerne identificerer, om objekterne bruges eller ej. Hvis de ikke bruges yderligere, frigøres hukommelsen og kan bruges senere.

Figur 01: Garbage Collector and Destructor

Når du kører et program, tildeles hukommelsesblokkene fra systemhukommelsespuljen. Derefter udfører programmet de opgaver, der bruger den hukommelse. Når programudførelsen er forbi, finder affaldssamleren ud af, om de tildelte hukommelsesblokke til programmet er vigtige eller ikke. Hvis de ikke er påkrævet, returneres disse hukommelsesblokke til systemet. Så affaldssamleren kan spore de oprettede objekter i programmet. De hukommelsesblokke, der ikke længere er påkrævet, sendes tilbage til systemhukommelsespuljen. Den største fordel ved denne proces er at bekræfte, at programmereren ikke behøver at koncentrere sig om hukommelsesdeallokationen. Det afbalancerer ydelse og hukommelsesbrug.

Hvad er en Destructor?

En destructor er en speciel medlemsfunktion i en klasse. Det påberåbes, når objektet går ud af rækkevidden. Objektet kan ødelægges, når en funktion slutter eller ved afslutningen af ​​programudførelsen. Destruktoren har samme navn som klassens navn. Konstruktøren bruges til at oprette objektet. Det kan acceptere parametre. Konstruktøren kan også have returværdier. Men i en Destructor er der ingen returtype eller accepterer parametre. En klasse kan kun bestå af en destruktør. En destruktor henvises til ved tegnet. Hvis klassens navn er Student, er destruktoren ~ Student () .

Affaldssamleren ser efter de genstande, der ikke kræves mere. Det sikrer, at de objekter, der ikke længere bruges af programmet, skal ødelægges. Det kalder destruktoren for at frigive hukommelsen og omfordele ressourcerne. Destruktorer er nyttige til at frigive hukommelse, lukke filer, frigive netværksressourcer og til at lukke databaseforbindelser. I de fleste programmeringssprog er det ikke nødvendigt at skrive destruktoren, fordi affaldsopsamleren kalder standardkonstruktøren alene. Hvis programmereren har foretaget nogen dynamisk hukommelsesallokering ved hjælp af pegepunkter på et sprog som C ++, skal han skrive en destruktor for at frigive hukommelse, før objektet ødelægges.

Hvad er ligheden mellem affaldsopsamler og destruktør?

  • Både Garbage Collector og Destructor bruges til at frigive hukommelse, som ikke længere er påkrævet til programmet.

Hvad er forskellen mellem garbage Collector og Destructor?

Garbage Collector vs Destructor

En skraldesamler er en software, der udfører automatisk hukommelsesstyring. En destructor er en speciel metode, der kaldes af affaldssamleren under ødelæggelsen af ​​genstanden.
 Type
En affaldsopsamler er en software. En destruktor er en metode.

Resumé - Skraldemand vs Destructor

Affaldsopsamler og destruktor er to udtryk forbundet med frigivelse af hukommelse. Denne artikel diskuterede forskellen mellem Garbage Collector og destructor. Forskellen mellem affaldsopsamleren og destruktoren er, at en skraldesamler er en software, der udfører automatisk hukommelsesstyring, mens en destruktor er en speciel metode, der kaldes af affaldsopsamleren under ødelæggelsen af ​​objektet.

Download PDF'en til Garbage Collector vs Destructor

Du kan downloade PDF-versionen af ​​denne artikel og bruge den til offline-formål som angivet i citatnotatet. Download PDF-versionen her: Forskel mellem affaldsopsamler og destruktør

Reference:

1.lyndapodcast. “Sådan fungerer C # skraldesamling | lynda. Com tutorial. ” Sådan fungerer C # skraldesamling | lynda.Com tutorial, LinkedIn Learning Solutions, 19. september 2011. Tilgængelig her 
2.Destruktorer i C. ” GeeksforGeeks, 27. maj 2017. Findes her  
3.Jain, Shubham. “Garbage Collector And Destructor In C #.” C # Hjørne. Tilgængelig her