Partager via


Object.JavaFinalize Méthode

Définition

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

[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
Attributs

Exceptions

Remarques

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet. Une sous-classe remplace la finalize méthode pour supprimer des ressources système ou effectuer d’autres nettoyages.

Le contrat général d’est finalize qu’il est appelé si et quand la machine virtuelle Java> a déterminé qu’il n’existe plus de moyens par lesquels cet objet est accessible par n’importe quel thread qui n’a pas encore disparu, sauf en raison d’une action effectuée par la finalisation d’un autre objet ou classe prêt à être finalisé. La finalize méthode peut prendre n’importe quelle action, y compris rendre cet objet disponible à nouveau pour d’autres threads ; toutefois, l’objectif habituel est d’effectuer finalizedes actions de nettoyage avant que l’objet soit définitivement ignoré. Par exemple, la méthode finalise pour un objet qui représente une connexion d’entrée/sortie peut effectuer des transactions d’E/S explicites pour interrompre la connexion avant que l’objet soit définitivement ignoré.

La finalize méthode de classe Object n’effectue aucune action spéciale ; elle retourne simplement normalement. Les sous-classes de Object peut remplacer cette définition.

Le langage de programmation Java ne garantit pas quel thread appelle la finalize méthode pour un objet donné. Toutefois, il est garanti que le thread qui appelle la finalisation ne contiendra pas de verrous de synchronisation visibles par l’utilisateur lors de l’appel de la finalisation. Si une exception non interceptée est levée par la méthode finalise, l’exception est ignorée et la finalisation de cet objet se termine.

Une fois la finalize méthode appelée pour un objet, aucune autre action n’est effectuée tant que la machine virtuelle Java n’a plus déterminé qu’il n’existe plus de moyens d’accéder à cet objet par n’importe quel thread qui n’est pas encore mort, y compris les actions possibles par d’autres objets ou classes prêts à être finalisés, à quel moment l’objet peut être ignoré.

La finalize méthode n’est jamais appelée plusieurs fois par une machine virtuelle Java pour un objet donné.

Toute exception levée par la méthode entraîne l’arrêt de la finalize finalisation de cet objet, mais elle est sinon ignorée.

Documentation Java pour java.lang.Object.finalize().

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à