Transmission de paramètres Java : valeur par rapport à référence
En Java, la sémantique de transmission de paramètres diffère des langages comme C#, où le mot-clé "ref" indique explicitement le passage de référence.
Confusion entourant la référence Passage
La nature "passage par valeur" de Java déroute les développeurs car les paramètres des types référence (comme les objets) sont en fait passés par référence. Cependant, cette « référence » est simplement l'emplacement mémoire de l'objet, pas l'objet lui-même.
Démonstration du passage de valeur
Considérez l'extrait de code suivant :
Object o = "Hello"; mutate(o); System.out.println(o); private void mutate(Object o) { o = "Goodbye"; }
Ce code affichera "Bonjour" sur la console car le paramètre "o" dans la méthode mutate fait en fait référence à une copie de l'original référence. L'attribution d'une nouvelle valeur à cette copie n'a aucun effet sur la valeur de l'objet d'origine.
Options alternatives de modification de référence
Pour modifier l'objet d'origine, il existe deux options :
AtomicReference<Object> ref = new AtomicReference<Object>("Hello"); mutate(ref); System.out.println(ref.get()); // Goodbye! private void mutate(AtomicReference<Object> ref) { ref.set("Goodbye"); }
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!