Maison > Java > javaDidacticiel > Le tableau de Java passe-t-il par valeur ou par référence ?

Le tableau de Java passe-t-il par valeur ou par référence ?

Patricia Arquette
Libérer: 2024-12-17 05:44:25
original
956 Les gens l'ont consulté

Is Java's Array Passing by Value or by Reference?

Comprendre le passage de valeurs et de références en Java : une étude de cas de tableaux

En Java, le concept de passage par valeur ou par référence est un sujet crucial. Différents types de données se comportent différemment au cours de ce processus. Alors que les primitives sont transmises par valeur, les tableaux, qui sont non primitifs mais pas des objets, présentent une situation unique.

Les tableaux sont-ils transmis par valeur ou par référence ?

Essentiellement, tout en Java est transmis par valeur. Les tableaux, étant des objets, suivent ce concept et la référence au tableau est transmise par valeur. Semblable au passage de références d'objet, la référence de tableau est une copie.

Implications du passage de valeur pour les tableaux

Ce passage de valeur a des implications spécifiques :

  • Les modifications apportées au contenu du tableau via la référence passée modifieront le tableau d'origine.
  • Modifier la référence elle-même (en l'attribuant à un nouveau tableau) n'affecte pas la référence d'origine dans la méthode d'origine.

Exemple de démonstration

Considérez le code Java suivant :

public static void changeContent(int[] arr) {

    // If we change the contnet of arr.
    arr[0] = 10;  // Will change the content of array in main()
}

public static void changeRef(int[] arr) {
    // If we change the reference
    arr = new int[2];  // Will not change the array in main()
    arr[0] = 15;
}

public static void main(String[] args) {
    int[] arr = new int[2];
    arr[0] = 4;
    arr[1] = 5;

    changeContent(arr);

    System.out.println(arr[0]);  // Will print 10..
    
    changeRef(arr);

    System.out.println(arr[0]);  // Will still print 10..
                                  // Change the reference doesn't reflect change here..
}
Copier après la connexion

Ce code démontre le comportement de transmission de valeurs des tableaux. Changer le contenu du tableau à l'aide de changeContent modifie le tableau d'origine. Cependant, l'attribution d'un nouveau tableau dans changeRef ne met pas à jour la référence d'origine. En conséquence, la valeur arr[0] reste 10 même après le changement de référence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal