Maison > Java > javaDidacticiel > Tableaux Java : passage par valeur ou passage par référence ?

Tableaux Java : passage par valeur ou passage par référence ?

Susan Sarandon
Libérer: 2024-12-29 08:03:14
original
548 Les gens l'ont consulté

Java Arrays: Pass by Value or Pass by Reference?

Tableaux Java : passage de valeur ou de référence ?

Les tableaux en Java ont un statut particulier, n'étant ni des types primitifs ni des objets à part entière. Cette nature unique soulève la question : les tableaux Java sont-ils transmis par valeur ou par référence ?

Tout en Java est transmis par valeur. Cela inclut les tableaux. Lorsque vous transmettez un tableau à une méthode, ce qui est réellement transmis est la référence à ce tableau, et non le tableau lui-même.

Par conséquent, toute modification apportée au contenu du tableau via cette référence aura un impact sur le tableau d'origine. . Cependant, modifier la référence pour pointer vers un nouveau tableau n'affectera pas la référence contenue dans la méthode d'origine.

Considérez l'extrait Java suivant :

public class ArrayPassingDemo {

    public static void changeContent(int[] arr) {
        arr[0] = 10; // Changes the content of the array in main()
    }

    public static void changeRef(int[] arr) {
        arr = new int[2]; // Does 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 (since the reference change isn't reflected)
    }
}
Copier après la connexion

Dans cet exemple :

  • changeContent modifie le contenu du tableau, ce qui se reflète dans main().
  • changeRef tente de changer la référence du tableau mais échoue, car la référence d'origine reste inchangée dans main().

Ce comportement met en évidence que les tableaux en Java sont transmis par valeur, même si l'opération de transmission implique leur 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