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 :

Quand est-ce qu'un objet devient éligible à la récupération par le garbage collector?


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de Miyukaze
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 66
    Points : 83
    Points
    83
    Par défaut Quand est-ce qu'un objet devient éligible à la récupération par le garbage collector?
    Bon! Dernière question sur laquelle je bute (aprés je vous laisse tranquille pour un petit moment )

    Dans le code ci-dessous, aprés quelle ligne l'objet initialement référencé par s devient-il éligible pour récupération par le garbage collector?

    1: void method X(){
    2: String s = "abc";
    3: String r = s;
    4: s = null;
    5: }

    a) Ligne 3
    b) Ligne 4
    c) Ligne 5
    d) Jamais

    J'ai vraiment du mal en Java avec les notions de références, allocation mémoire tout ça. L'objet référencé par s c'est "abc"? Donc en fait on se soucie de "abc" et non de s c'est ça? Je serai tenté de répondre c)
    Mais même si c'est bien la réponse c), je suis preneur de toute explication qui me permettrait de mieux comprendre tout ça.
    Merci d'avance pour votre aide précieuse!

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 501
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonsoir,

    Voici ce qui se passe au niveau de la JVM:

    Ligne 2: Un String est instancié et "s" pointe dessus (1 référence vers ce String)
    Ligne 3: "r" pointe également sur le String qui vient d'être instancié (2 références vers ce String)
    Ligne 4: "s" ne pointe plus sur rien (reste 1 référence vers le String)
    Ligne 5: "r" disparait (ainsi que "s") et il ne reste plus aucune référence vers le String, à ce moment, il devient éligible au garbage

  3. #3
    Membre régulier Avatar de Miyukaze
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 66
    Points : 83
    Points
    83
    Par défaut
    Merci beaucoup pour cette réponse parfaitement claire =]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Objet éligible par le garbage collector
    Par khallou2007 dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2014, 22h50
  2. Le nombre d'objet à collecter par le garbage collector
    Par TaymouWan dans le forum VB.NET
    Réponses: 3
    Dernier message: 22/12/2009, 17h41
  3. [JAVA_HOME] quand est ce indispensable?
    Par VlaMonPseudo dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 19h36
  4. [WEB][Architecture] Qu'est-ce qu'un objet TIO ?
    Par nighma dans le forum Général Java
    Réponses: 6
    Dernier message: 07/09/2005, 09h00

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