Forskellen mellem bortskaffelse () og færdiggørelse ()

Indholdsfortegnelse:

Forskellen mellem bortskaffelse () og færdiggørelse ()
Forskellen mellem bortskaffelse () og færdiggørelse ()

Video: Forskellen mellem bortskaffelse () og færdiggørelse ()

Video: Forskellen mellem bortskaffelse () og færdiggørelse ()
Video: On the traces of an Ancient Civilization? 🗿 What if we have been mistaken on our past? 2024, Juli
Anonim

Nøgleforskel – bortskaf () vs. færdiggør ()

Nøgleforskellen mellem dispose () og finalize () er, at dispose () eksplicit skal påberåbes af programmøren, mens finalize () påberåbes af skraldeopsamleren, før objektet ødelægges.

The dispose () er en metode til at lukke eller frigive ikke-administrerede ressourcer såsom filer, streams, der holdes af et objekt. Finaliseringen er en metode til at udføre oprydningsoperationer på ikke-administrerede ressourcer, der opbevares af det aktuelle objekt, før objektet ødelægges.

Hvad er dispose()?

En af de vigtigste fordele ved. NET framework er, at det giver automatisk affaldsindsamling. Den frigiver automatisk hukommelsen for de objekter, der ikke bruges. I programmeringssprog som C og C++ skal programmøren håndtere hukommelseshåndtering på egen hånd. Men i sprog som C, der er bygget på. NET framework, giver skraldeopsamleren. Det hjælper med at styre hukommelsen. Den kan ikke bruges til at frigive de ikke-administrerede hukommelsesressourcer. Dispose ()-metoden kan bruges til at udføre denne opgave.

Forskellen mellem bortskaffe () og færdiggøre ()
Forskellen mellem bortskaffe () og færdiggøre ()

Dispose ()-metoden kan bruges til at frigive ressourcer såsom databaseforbindelser, filbehandlere osv. Denne metode kaldes ikke automatisk. Derfor bør programmøren implementere denne metode. Så snart denne metode påkaldes, frigives hukommelsen for den bestemte ikke-administrerede ressource. Denne metode er erklæret i grænsefladen IDisposeable.

Hvad er afslutte ()?

Fuldfør-metoden kaldes kun af skraldeopsamleren, når referencen til et objekt ikke bruges yderligere. Denne metode kaldes lige før de ødelægger objektet. Denne metode implementeres ved hjælp af destruktoren. Finaliseringsmetoden er defineret i klassen java.lang.object. Denne metode er erklæret som beskyttet. Det er ikke erklæret som offentligt for at undgå adgang af de andre klasser. Samlet set kan færdiggørelsesmetoden minimere programmets ydeevne, fordi den ikke frigør hukommelsen øjeblikkeligt.

Hvad er ligheden mellem disponere () og afslutte()?

Både disponere () og finalize() kan bruges til at frigøre den hukommelse, der er allokeret til en ikke-administreret ressource

Hvad er forskellen mellem disponere () og færdiggøre()?

dispose () vs finalize ()

The dispose () er en metode til at lukke eller frigive ikke-administrerede ressourcer såsom filer, streams, der holdes af et objekt. Faldiggørelsen er en metode til at udføre oprydningsoperationer på ikke-administrerede ressourcer, der opbevares af det aktuelle objekt, før objektet ødelægges.
Mål
Bortskaffelsesmetoden bruges til at frigøre de ikke-administrerede ressourcer, når den påkaldes. Fuldfør-metoden bruges til at frigøre de ikke-administrerede ressourcer, før objektet ødelægges.
Defineret grænseflade eller klasse
Bortskaffelsen () er defineret i grænsefladen IDisposable-grænsefladen. Afslutningen () er defineret i java.lang.object-klassen.
Påkaldemetode
Bortskaffelsesmetoden påberåbes af programmøren. Fuldfør-metoden påberåbes af skraldeopsamleren.
Adgangsspecifikation
Bortskaffelsesmetoden er offentlig. Afslutningsmetoden er beskyttet.
Speed
Bortskaffelsesmetoden aktiveres øjeblikkeligt. Afslutningsmetoden påkaldes langsomt.
Ydeevne
Bortskaffelsen vil ikke minimere programmets ydeevne. Afslutningsmetoden kan minimere programmets ydeevne.

Opsummering – kasser () vs. færdiggør ()

Denne artikel diskuterede forskellen mellem bortskaffelse og færdiggørelsesmetoder i C. Forskellen mellem dispose () og finalize () er, at dispose () eksplicit skal påberåbes af programmøren, mens finalize () påkaldes af garbage collector, før objektet ødelægges.

Anbefalede: