Bonjour,
Quelles sont les bonnes pratique pour l'utilisation du finaliseurs?
Merci
Bonjour,
Quelles sont les bonnes pratique pour l'utilisation du finaliseurs?
Merci
hocine
finalize() est surtout surchargée pour libérer des objets qui ne le seraient pas automatiquement lors du passage du ramasse miettes (handle de fichiers, polices de caractères...). Ça permet de faire les dernières opérations avant que l'objet ne soit complètement détruit.
99.99% du temps tu n'en as pas besoin.
Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
De la bonne manière de poser une question (et de répondre).
Je ne fais pas de service par MP. Merci (...de lire les règles...).
Ma page dvp.com
Bonsoir,
je souhaitais juste ajouter ceci : surcharger la méthode finalize est une mauvaise pratique car vous ne pouvez pas savoir à quel moment il sera appelé.
Il vaut mieux écrire une méthode dispose() vous-même et que vous appelerez vous-même. Swing emploie ce procédé (méthode dispose() sur les JFrame) tout comme les classes InputStream et OutputStream (méthode close()).
Voici ce que dit Joshua Bloch (expert chez Sun) dans Effective Java : "Un finaliseur est imprédictible, la plupart du temps dangereux et certainement inutile. Son utilisation peut provoquer des irrégularités, de mauvaises performances et des problèmes de portabilité."
Bonne soirée.
Coyote
La mauvaise compréhension est que finalize ne détruit pas l'objet ! Cette méthode est appelée lors de sa destruction par le GC. En aucun cas il ne faut l'appeler directement croyant que ça va détruire l'objet.
Java n'est pas C++ ! C'est la JVM qui gère tout ça.
Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
De la bonne manière de poser une question (et de répondre).
Je ne fais pas de service par MP. Merci (...de lire les règles...).
Ma page dvp.com
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager