IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

La méthode void finalize


Sujet :

avec Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut La méthode void finalize
    Bonjour,

    Quelqu'un saurait-il m'expliquer le rôle de la méthode finalize() ?

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Par défaut
    Salut,

    La méthode finalize est héritée de Object et correspond à un mécanisme interne de Java.

    Le ramasse-miettes (garbage collector) a pour objectif de libérer les objets sans référence de la mémoire. Il faut comprendre par cela, les objets qui ne sont plus utilisés et qui utilisent de la mémoire à tord. Avant la libération d'un objet de la mémoire, la méthode finalize est appelé sur l'objet pour lui permettre de libérer explicitement les éventuelles ressources dépendantes. L'exemple souvent donné est la fermeture des flux (fichier, socket, ...) éventuellement non fermés.

    Son utilisation est rarement requise et conseillée car la libération de telles ressources devraient être maîtrisées en amont. De plus, l'exécution de cette méthode est ni prédictible, ni fiable, c'est à la volonté de l'implémentation de la JVM ; il ne faut donc pas compter dessus.

    Pour plus d'informations ...
    http://docs.oracle.com/javase/specs/....html#jls-12.6
    http://howtodoinjava.com/2012/10/31/...ethod-in-java/


    Flo.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ouais donc, réponse courte :
    Aucun rôle, elle ne sert à rien.

    Réponse longue :
    À l'époque où elle a été faite, l'idée c'était au cas où on avait oublié un cas sur un objet qui devait absolument être traité avant d'être perdu, on pouvait mettre le traitement dans finalize().
    Mais en réalité ça marche pas bien, et de toute façon si "on a oublié un cas" c'est que le code est pourri. Il suffit de pas oublier de cas. try est là pour ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Une méthode void avec un nombre non prédéfini de paramètres
    Par ROUGE87 dans le forum Général Java
    Réponses: 10
    Dernier message: 26/04/2011, 17h13
  2. final dans les variables d'une méthode
    Par qdaemon_fr dans le forum Langage
    Réponses: 7
    Dernier message: 02/03/2009, 10h14
  3. la non utilisation de la méthode finalize
    Par Aida dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2008, 09h13
  4. Méthode Finalize et problème de conception
    Par phryos dans le forum Langage
    Réponses: 4
    Dernier message: 19/04/2006, 11h04
  5. Déclaration d'un paramètre de méthode en final ?
    Par elitost dans le forum Langage
    Réponses: 1
    Dernier message: 22/09/2005, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo