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) } }
Dans cet exemple :
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!