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

Langage Java Discussion :

références identiques et cases mémoire


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut références identiques et cases mémoire
    bonjour,

    Soit deux variables d1 et d2 du type date
    Date d1= New date()
    Date d2 = New date()


    Si j'écris d1=d2, est ce qu'en mémoire il y a deux cases mémoire qui contiennent toutes les deux l'adresse de l'objet de type date vers lequel pointent les deux variables d1 et d2 ou n'y a t-il qu'une seule case mémoire qui contient une seule adresse mémoire qui est celle de l'objet crée.

    Merci de votre aide.

    Cordialement.

    Nathalie

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Lorsque tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    a = new Date(); // O1
    b = new Date(); // O2
    Alors il y a deux cases - si l'on peut dire -, une pour l'objet O1 et une pour l'objet O2. Les variables a et b occupent chacune un pointeur, celui de a pointe vers O1, celui de b vers O2.

    Si maintenant tu fais :
    Alors il y a toujours deux objets, O1 et O2, deux références a et b, qui pointent toutes les deux vers O1.

    Probablement, O2 sera supprimé au prochain déclanchement du ramasse-miettes.

    Donc comme tu dis il y a toujours deux cases mémoires a et b;

    Les cases mémoires de variables sont nettoyées dès lors qu'elles ne sont plus accessible par le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {
     A a, b; // ici les cases mémoires des variables sont réservées
     
     ...
    } // là les cases mémoires de a et b ont une chance d'être nettoyées.
    Pour les objets, leur case mémoire est nettoyée dès lors qu'elles ne sont plus accessibles à l'exécution, donc qu'aucune case mémoire de variable ne peut les atteindre.

Discussions similaires

  1. [Quick Assembler/ DOS] Réservation de cases mémoire
    Par jean leboeuf dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 03/11/2008, 15h53
  2. Réponses: 0
    Dernier message: 23/02/2008, 13h42
  3. Réponses: 13
    Dernier message: 14/02/2008, 13h27
  4. allocation cases mémoires consécutives
    Par salseropom dans le forum C
    Réponses: 2
    Dernier message: 06/10/2006, 13h33
  5. Réponses: 21
    Dernier message: 21/07/2006, 16h55

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