Nyckelskillnad – avyttra () kontra slutföra ()
Den viktigaste skillnaden mellan dispose () och finalize () är att dispose () måste anropas uttryckligen av programmeraren medan finalize () anropas av sopsamlaren innan objektet förstörs.
The dispose () är en metod för att stänga eller frigöra ohanterade resurser som filer, strömmar som innehas av ett objekt. Finaliseringen är en metod för att utföra saneringsoperationer på ohanterade resurser som innehas av det aktuella objektet innan objektet förstörs.
Vad är dispose()?
En av de viktigaste fördelarna med. NET-ramverket är att det tillhandahåller automatisk sophämtning. Den frigör automatiskt minnet för de objekt som inte används. I programmeringsspråk som C och C++ måste programmeraren hantera minneshantering på egen hand. Men i språk som C som är byggd på. NET-ramverket tillhandahåller sopsamlaren. Det hjälper till att hantera minnet. Den kan inte användas för att frigöra de ohanterade minnesresurserna. Avyttringsmetoden () kan användas för att uppnå denna uppgift.
metoden dispose () kan användas för att frigöra resurser som databasanslutningar, filhanterare etc. Denna metod anropas inte automatiskt. Därför bör programmeraren implementera denna metod. Så snart denna metod anropas frigörs minnet för den särskilda ohanterade resursen. Denna metod deklareras i gränssnittet IDisposeable.
Vad är slutföra ()?
Färdigställningsmetoden anropas endast av sopsamlaren när referensen till ett objekt inte används vidare. Denna metod kallas precis innan objektet förstörs. Denna metod implementeras med hjälp av destruktören. Finalize-metoden definieras i klassen java.lang.object. Denna metod förklaras som skyddad. Det är inte deklarerat som offentligt för att undvika åtkomst av de andra klasserna. Sammantaget kan finaliseringsmetoden minimera programmets prestanda eftersom det inte frigör minnet direkt.
Vad är likheten mellan avyttra () och slutföra()?
Både dispose () och finalize() kan användas för att frigöra minnet som tilldelats för en ohanterad resurs
Vad är skillnaden mellan avyttra () och slutföra()?
dispose () vs finalize () |
|
The dispose () är en metod för att stänga eller frigöra ohanterade resurser som filer, strömmar som innehas av ett objekt. | Färdigställningen är en metod för att utföra saneringsoperationer på ohanterade resurser som innehas av det aktuella objektet innan objektet förstörs. |
Mål | |
Kasserametoden används för att frigöra de ohanterade resurserna när den anropas. | Färdigställningsmetoden används för att frigöra de ohanterade resurserna innan objektet förstörs. |
Definierat gränssnitt eller klass | |
Förfogande () definieras i gränssnittet ID Disposable-gränssnitt. | Färdigställningen () definieras i klassen java.lang.object. |
Anropsmetod | |
Kasserametoden anropas av programmeraren. | Färdigställningsmetoden åberopas av sophämtaren. |
Åtkomstspecifikator | |
Korthanteringsmetoden är offentlig. | Färdigställningsmetoden är skyddad. |
Speed | |
Kasserametoden anropas omedelbart. | Färdigställningsmetoden anropas långsamt. |
Prestanda | |
Kasseringen kommer inte att minimera programmets prestanda. | Slutföringsmetoden kan minimera programmets prestanda. |
Sammanfattning – avyttra () kontra slutföra ()
Den här artikeln diskuterade skillnaden mellan avyttrings- och slutbehandlingsmetoder i C. Skillnaden mellan dispose () och finalize () är att dispose () måste uttryckligen anropas av programmeraren medan finalize () anropas av garbage collector innan objektet förstörs.