Differenza tra sm altire () e finalizzare ()

Sommario:

Differenza tra sm altire () e finalizzare ()
Differenza tra sm altire () e finalizzare ()

Video: Differenza tra sm altire () e finalizzare ()

Video: Differenza tra sm altire () e finalizzare ()
Video: By Goat or By Boat | Critical Role | Campaign 3, Episode 56 2024, Luglio
Anonim

Differenza chiave – sm altisci () vs finalizza ()

La differenza fondamentale tra dispose() e finalize() è che dispose() deve essere esplicitamente invocato dal programmatore mentre finalize() viene invocato dal Garbage Collector prima di distruggere l'oggetto.

Dispose() è un metodo per chiudere o rilasciare risorse non gestite come file, flussi detenuti da un oggetto. Finalize è un metodo per eseguire operazioni di pulizia sulle risorse non gestite detenute dall'oggetto corrente prima che l'oggetto venga distrutto.

Cos'è sm altire()?

Uno dei vantaggi più importanti di. NET Framework è che fornisce la raccolta automatica dei rifiuti. Rilascia automaticamente la memoria degli oggetti non utilizzati. Nei linguaggi di programmazione come C e C++, il programmatore deve gestire da solo la gestione della memoria. Ma in linguaggi come C che è basato su. NET Framework fornisce il Garbage Collector. Aiuta a gestire la memoria. Non può essere utilizzato per rilasciare le risorse di memoria non gestite. Il metodo dispose() può essere utilizzato per ottenere questo compito.

Differenza tra sm altire () e finalizzare ()
Differenza tra sm altire () e finalizzare ()

Il metodo dispose() può essere utilizzato per rilasciare risorse come connessioni al database, gestori di file ecc. Questo metodo non viene chiamato automaticamente. Pertanto, il programmatore dovrebbe implementare questo metodo. Non appena viene richiamato questo metodo, viene rilasciata la memoria per la particolare risorsa non gestita. Questo metodo è dichiarato nell'interfaccia IDisposeable.

Cos'è finalize ()?

Il metodo finalize viene chiamato dal Garbage Collector solo quando il riferimento a un oggetto non viene utilizzato ulteriormente. Questo metodo viene chiamato appena prima di distruggere l'oggetto. Questo metodo viene implementato con l'aiuto del distruttore. Il metodo finalize è definito nella classe java.lang.object. Questo metodo è dichiarato protetto. Non è dichiarato pubblico per evitare l'accesso delle altre classi. Nel complesso, il metodo finalize può ridurre al minimo le prestazioni del programma perché non libera la memoria all'istante.

Qual è la somiglianza tra dispose() e finalize()?

Sia dispose() che finalize() possono essere utilizzati per liberare la memoria allocata per una risorsa non gestita

Qual è la differenza tra dispose() e finalize()?

dispose () vs finalize ()

Dispose() è un metodo per chiudere o rilasciare risorse non gestite come file, flussi detenuti da un oggetto. Il finalize è un metodo per eseguire operazioni di pulizia sulle risorse non gestite detenute dall'oggetto corrente prima che l'oggetto venga distrutto.
Obiettivo
Il metodo dispose viene utilizzato per liberare le risorse non gestite quando viene richiamato. Il metodo finalize viene utilizzato per liberare le risorse non gestite prima che l'oggetto venga distrutto.
Interfaccia o classe definita
L'eliminazione () è definita nell'interfaccia IDisposable interface. Il finalize() è definito nella classe java.lang.object.
Metodo di invocazione
Il metodo dispose viene invocato dal programmatore. Il metodo finalize viene invocato dal Garbage Collector.
Specificatore di accesso
Il metodo di sm altimento è pubblico. Il metodo di finalizzazione è protetto.
Velocità
Il metodo di sm altimento viene richiamato all'istante. Il metodo finalize viene invocato lentamente.
Prestazioni
Lo sm altimento non ridurrà al minimo le prestazioni del programma. Il metodo di finalizzazione potrebbe ridurre al minimo le prestazioni del programma.

Riepilogo – sm altisci () vs finalizza ()

Questo articolo ha discusso la differenza tra i metodi dispose e finalize in C. La differenza tra dispose() e finalize() è che, dispose() deve essere esplicitamente invocato dal programmatore mentre finalize() viene invocato dal Garbage Collector prima di distruggere l'oggetto.

Consigliato: