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 :

Compréhension de la classe Island !


Sujet :

avec Java

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut Compréhension de la classe Island !
    Bonjour,
    Je me base sur un exemple pour comprendre l’éligibilité des variables d'instances dans le gc.

    J'ai une classe Island :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public class Island {
       Island n;
       public static void main (String [] args){
     Island I2 = new Island();
     Island i3 = new Island();
     Island i4 = new Island();
     
    i2.n = i3;
    i3.n = i4;
    i4.n = i2;
     
     
    i2=null;
    i3=null;
    i4 = null;
    }
    }
    Donc j'ai des 3 variables d'instances i2, i3, i4 qui pointent sur respectivement sur un objet Island en mémoire mais je ne comprend pas c'est les point suivants lorsqu'il y a une affectation de i2.n=i3
    y a quelqu'un qui pourrai m'aider sur la compréhension ?
    merci d'avance

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 631
    Points
    21 631
    Par défaut
    Citation Envoyé par prugne Voir le message
    Donc j'ai des 3 variables d'instances i2, i3, i4 qui pointent sur respectivement sur un objet Island en mémoire
    Non, ce sont des variables locales de la méthode main(), ce ne sont pas des variables d'instance.
    Par contre, elles pointent chacune sur un objet Island en mémoire, certes.

    Tu as une seule variable d'instance, et elle s'appelle n.

    Citation Envoyé par prugne Voir le message
    mais je ne comprend pas c'est les point suivants lorsqu'il y a une affectation de i2.n=i3
    Cela affecte la variable d'instance n de i2. Ainsi, cette variable d'instance pointe vers i3.


    Note : pour l'instant je ne vois pas trop le rapport avec l'éligibilité au gc.

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Non, ce sont des variables locales de la méthode main(), ce ne sont pas des variables d'instance.
    Par contre, elles pointent chacune sur un objet Island en mémoire, certes.

    Tu as une seule variable d'instance, et elle s'appelle n.



    Cela affecte la variable d'instance n de i2. Ainsi, cette variable d'instance pointe vers i3.


    Note : pour l'instant je ne vois pas trop le rapport avec l'éligibilité au gc.

    tu veux dire que i3 est affecté ài2.n?
    après on met à null i2,i3,i4 donc ces variables locales ne pointent plus vers leur objet respectif...les objets sont liés entre eux non?
    bon c'est un peu confus ...

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Note : pour l'instant je ne vois pas trop le rapport avec l'éligibilité au gc.
    J'imagine que cela a à voir avec les références cycliques. En effet, i2, i3 et i4 sont mise à null dans la méthode mais l'instance précédemment dans i2 est référencée par i3.n, l'instance précédemment dans i3 est référencée par i4.n et l'instance précédemment dans i4 est référencée par i2.n.
    J'imagine que la question est de savoir si ces instances sont éligible par le GC alors qu'elles sont pourtant référencées.
    La réponse est oui car ces instances ne sont plus "atteignables" (le GC gère les références cycliques).

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 631
    Points
    21 631
    Par défaut
    Citation Envoyé par prugne Voir le message
    tu veux dire que i3 est affecté ài2.n?
    Oui.

    Citation Envoyé par prugne Voir le message
    après on met à null i2,i3,i4 donc ces variables locales ne pointent plus vers leur objet respectif...les objets sont liés entre eux non?
    Oui.
    Enfin en principe mais, en effet, rien d'autre n'est lié à eux, le programme ne peut plus les atteindre, ils sont en effet éligibles pour le gc. Et donc ça n'a pas beaucoup de sens de se demander ce qui leur arrive et dans quel état ils sont : de toute façon ça ne peut plus avoir d'effet sur le programme.

    Citation Envoyé par prugne Voir le message
    bon c'est un peu confus ...
    Pas vraiment... Les cycles sont une notion courante en informatique et mathématique.

  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Oui.



    Oui.
    Enfin en principe mais, en effet, rien d'autre n'est lié à eux, le programme ne peut plus les atteindre, ils sont en effet éligibles pour le gc. Et donc ça n'a pas beaucoup de sens de se demander ce qui leur arrive et dans quel état ils sont : de toute façon ça ne peut plus avoir d'effet sur le programme.



    Pas vraiment... Les cycles sont une notion courante en informatique et mathématique.

    Et ce cycle qui est une notation courante,cela correspond à un design pattern?
    Suis pas familière ou encore peu avec ces notions de cycles....en java dans mon cas.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Je pense que thelvin fait allusion aux graphes.

  8. #8
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par atha2 Voir le message
    Je pense que thelvin fait allusion aux graphes.
    Je confirme, il fait référence à la notion de référence cyclique (A qui référence B qui référence C qui référence A).

    Et non ce n'est pas un design pattern. Un design pattern est un arrangement de classe déjà éprouvé (donc bonne pratique). Il permet de proposer une conception de classes répondant à un soucis d'architecture particulier. Tu auras plus de détails ici. Mais je deviens un peu hors sujet là.

Discussions similaires

  1. Compréhension création de classe
    Par jingenbl dans le forum Général Python
    Réponses: 13
    Dernier message: 23/12/2012, 14h18
  2. x:Class soucis de compréhension
    Par Myzha dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 25/05/2010, 11h50
  3. Classe DataSet: compréhension
    Par Leelith dans le forum ASP.NET
    Réponses: 13
    Dernier message: 16/07/2009, 17h43
  4. Classes : question de compréhension
    Par kanabzh29 dans le forum Langage
    Réponses: 6
    Dernier message: 06/11/2008, 11h26
  5. Problème de compréhension d'une classe
    Par goldorax113 dans le forum Langage
    Réponses: 5
    Dernier message: 25/10/2006, 22h50

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