Condividi tramite


Object.JavaFinalize Metodo

Definizione

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

[Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")]
protected virtual void JavaFinalize ();
[<Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")>]
abstract member JavaFinalize : unit -> unit
override this.JavaFinalize : unit -> unit
Attributi

Eccezioni

Commenti

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . Una sottoclasse esegue l'override del finalize metodo per eliminare le risorse di sistema o per eseguire altre operazioni di pulizia.

Il contratto generale di finalize è che viene richiamato se e quando la macchina virtuale Java&trade ha determinato che non c'è più alcun mezzo tramite il quale questo oggetto può essere accessibile da qualsiasi thread che non è ancora morto, tranne a seguito di un'azione eseguita dalla finalizzazione di un altro oggetto o classe che è pronto per essere finalizzato. Il finalize metodo può eseguire qualsiasi azione, incluso rendere nuovamente disponibile questo oggetto ad altri thread. Lo scopo consueto di , tuttavia, consiste nell'eseguire azioni di finalizepulizia prima che l'oggetto venga rimosso in modo irrevocabile. Ad esempio, il metodo finalize per un oggetto che rappresenta una connessione di input/output potrebbe eseguire transazioni di I/O esplicite per interrompere la connessione prima che l'oggetto venga eliminato definitivamente.

Il finalize metodo della classe Object non esegue alcuna azione speciale, ma restituisce semplicemente normalmente. Le sottoclassi di possono eseguire l'override di Object questa definizione.

Il linguaggio di programmazione Java non garantisce quale thread richiamerà il finalize metodo per qualsiasi oggetto specificato. È garantito, tuttavia, che il thread che richiama finalizza non conterrà blocchi di sincronizzazione visibili all'utente quando viene richiamata la finalizzazione. Se viene generata un'eccezione non rilevata dal metodo finalize, l'eccezione viene ignorata e la finalizzazione dell'oggetto termina.

Dopo che il finalize metodo è stato richiamato per un oggetto, non viene eseguita alcuna ulteriore azione fino a quando la macchina virtuale Java non ha più determinato che non è più possibile accedere a questo oggetto da qualsiasi thread che non è ancora morto, incluse le possibili azioni da parte di altri oggetti o classi che sono pronti per essere finalizzati, a questo punto l'oggetto può essere rimosso.

Il finalize metodo non viene mai richiamato più di una volta da una macchina virtuale Java per qualsiasi oggetto specificato.

Qualsiasi eccezione generata dal finalize metodo determina l'interruzione della finalizzazione di questo oggetto, ma viene altrimenti ignorata.

Documentazione java per java.lang.Object.finalize().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a