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 :

[débutant] affectation et copie


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut [débutant] affectation et copie
    Bonjour,

    Voila, il y a un truc dans java que je n'arrive jamais à comprendre, et d'ailleurs j'arrive même pas à l'expliquer clairement, donc je vais faire par l'exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // imaginons que AutreClasse.getlist() renvoie un arraylist<integer>
    ArrayList<Integer> list = AutreClasse.getlist();
    Dans cet exemple la, si j'ai compris, list pointera sur la liste de AutreClasse, et ne sera pas une copie.
    Pour copier la liste il faut allouer list et faire un addall.

    maintenant si j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    byte b = AutreClasse.getbyte();
    b par contre aura la meme valeur que le byte renvoyé par autreclasse, mais sera une entité différente.

    Maintenant si je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    byte[] chunck = AutreClasse.getChunk();
    Il se passe quoi ? Copie ou Reference ?

    Et si c'est juste une reference que je reçoit, comme je peux me débrouiller pour faire une copie, sans avoir a copier byte par byte à l'aide de boucles ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    En java, tous les types primitifs sont passés par copie de la référence et tout le reste par référence.

    Donc ton premier exemple, c'est la référence. Dans ton deuxième exemple, byte est un type primitif, ce sera donc une copie de la référence.

    Et dans ton troisième exemple, bien que ce soit un tableau de type primitif, ca reste un tableau et donc un objet et c'est bien une référence que tu vas récupérer.

    Donc si tu veut faire une copie, tu peut aller voir du coté de arrayCopy.

Discussions similaires

  1. [Débutant] Problème avec COPY
    Par tonymontana4192 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 04/08/2008, 10h37
  2. [Débutant] Affectation tableau associatif
    Par glayag dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 21/02/2008, 11h09
  3. Réponses: 1
    Dernier message: 30/05/2007, 14h29
  4. Réponses: 4
    Dernier message: 27/05/2007, 19h09
  5. [JSP] [débutant] affectation variable java
    Par RENAULT dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/07/2004, 15h44

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