Object.JavaFinalize Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 finalize
pulizia 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.