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 :
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.. }
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!