Forskellen mellem skraldeopsamler og destruktor

Indholdsfortegnelse:

Forskellen mellem skraldeopsamler og destruktor
Forskellen mellem skraldeopsamler og destruktor

Video: Forskellen mellem skraldeopsamler og destruktor

Video: Forskellen mellem skraldeopsamler og destruktor
Video: Forskelle og ligheder mellem EUX- og EUD-tømreruddannelserne 2024, Juli
Anonim

Nøgleforskel – Garbage Collector vs Destructor

De fleste programmeringssprog understøtter objektorienteret programmering. Det er en metode til at bygge et program eller en software ved hjælp af objekter. Et objekt er oprettet ved hjælp af en klasse, så det er en forekomst af en klasse. En klasse giver beskrivelsen af, hvad objektet skal bestå af. Ved oprettelse af objekter allokeres hukommelse til objekterne. Den tildelte hukommelse bør frigives ved afslutningen af programafviklingen for at genbruge denne hukommelse til et andet objekt. Programmeringssprog som Java og C. NET bruger skraldesamlere til hukommelseshåndtering, mens sprog som C og C++ kræver, at programmøren håndterer hukommelseshåndtering. Den nødvendige mængde hukommelse skal allokeres, og ved afslutningen af udførelsen skal hukommelsen frigives. Garbage collector og destructor bruges til at frigive hukommelse. Den vigtigste forskel mellem skraldesamleren og destructor er, at en garbage collector er en software, der udfører automatisk hukommelsesstyring, mens en destructor er en speciel metode, der kaldes af garbage collector under destruktionen af objektet.

Hvad er en skraldeopsamler?

Nogle programmeringssprog har administrerede kodemiljøer. I programmeringssprogene Java og C udføres automatisk hukommelseshåndtering. Programmøren behøver ikke at frigøre den hukommelse, der bruges af objekterne. Det er lettere for dem at udvikle selv komplekse systemer, fordi hukommelseshåndteringen foregår automatisk. I programmeringssprog såsom C, C++ og Objective C, bør programmet frigive objekternes hukommelse tilbage til systemet. Sprog som Java og C kan finde ud af de objekter, der ikke længere bruges. Bagefter frigiver de den hukommelse, der er allokeret til disse objekter, tilbage til systemet.

I programmeringssprogene C og Java, hvis der er en klasse kaldet Student, så kan et objekt oprettes ved hjælp af Student s=new Student (); Den 'nye' bruges til at oprette en forekomst af Elev-klassen. Den tildeler hukommelse i systemet. 'S'et' refererer til den hukommelsesblok, der er allokeret til det pågældende objekt. Sprogmiljøerne identificerer, om objekterne bliver brugt eller ej. Hvis de ikke bruges yderligere, frigives hukommelsen og kan bruges senere.

Forskellen mellem garbage Collector og Destructor
Forskellen mellem garbage Collector og Destructor

Figur 01: Skraldeopsamler og destruktor

Når et program køres, tildeles hukommelsesblokkene fra systemhukommelsespuljen. Derefter udfører programmet opgaverne ved hjælp af denne hukommelse. Når programudførelsen er slut, finder skraldemanden ud af, om de tildelte hukommelsesblokke til programmet er essentielle eller ej. Hvis de ikke er nødvendige, returneres disse hukommelsesblokke til systemet. Så skraldeopsamleren kan spore de oprettede objekter i programmet. De hukommelsesblokke, der ikke længere er nødvendige, sendes tilbage til systemhukommelsespuljen. Den største fordel ved denne proces er at bekræfte, at programmøren ikke behøver at koncentrere sig om hukommelsesdeallokeringen. Det balancerer ydeevne og hukommelsesforbrug.

Hvad er en Destructor?

En destruktor er en særlig medlemsfunktion i en klasse. Den påkaldes, når objektet går uden for rækkevidden. Objektet kan blive ødelagt, når en funktion afsluttes eller i slutningen af programafviklingen. Destruktoren har samme navn som klassenavnet. Konstruktøren bruges til at skabe objektet. Den kan acceptere parametre. Konstruktøren kan også have returværdier. Men i en Destructor er der ingen returtype eller accepterende parametre. En klasse kan kun bestå af én destruktor. En destruktor henvises ved hjælp af tilde-tegnet. Hvis klassens navn er Elev, så er destruktoren ~Student () {}.

Affaldssamleren leder efter de genstande, der ikke længere er nødvendige. Det sikrer, at de objekter, som ikke længere bruges af programmet, skal destrueres. Den kalder destruktoren til at frigive hukommelsen og tildele 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 garbage collector kalder standardkonstruktøren på egen hånd. Hvis programmøren har foretaget en dynamisk hukommelsesallokering ved hjælp af pointere i et sprog som C++, så skal han skrive en destruktor for at frigive hukommelse, før objektet ødelægges.

Hvad er ligheden mellem Garbage Collector og Destructor?

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 skraldeopsamler og destruktor?

Garbage Collector vs Destructor

En skraldeopsamler er en software, der udfører automatisk hukommelseshåndtering. En destruktor er en speciel metode, der kaldes af skraldesamleren under destruktionen af objektet.
Type
En skraldeopsamler er en software. En destruktor er en metode.

Opsummering – Garbage Collector vs Destructor

Garbage collector og destructor er to udtryk, der er forbundet med at frigive hukommelse. Denne artikel diskuterede forskellen mellem Garbage Collector og destructor. Forskellen mellem garbage collector og destructor er, at en garbage collector er en software, der udfører automatisk hukommelseshåndtering, mens en destructor er en speciel metode, der kaldes af garbage collector under destruktionen af objektet.

Download PDF'en af Garbage Collector vs Destructor

Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål i henhold til citatnotat. Download venligst PDF-versionen her: Difference Between Garbage Collector and Destructor

Anbefalede: