Maison >développement back-end >C++ >Java transmet-il les paramètres par référence ou par valeur, et comment pouvez-vous obtenir un comportement de type référence ?
Passer des paramètres par référence en Java : une clarification
Contrairement à la croyance populaire, Java ne prend pas en charge le passage de paramètres par référence de la même manière comme mot-clé ref de C#. Cependant, cette perception vient du fait que pour les paramètres de type référence, la référence elle-même est passée par valeur.
En Java, tous les paramètres sont passés par valeur. Lorsqu'un paramètre de type référence est transmis à une méthode, une copie de la référence est créée. Cela signifie que les modifications apportées à la référence au sein de la méthode n'affectent pas la référence en dehors de la méthode.
Pour illustrer cela, considérons l'exemple suivant :
Object o = "Hello"; mutate(o); System.out.println(o); //Hello private void mutate(Object o) { o = "Goodbye"; }
Le code ci-dessus affichera " Bonjour" à la console. Cela démontre que la référence o à l'intérieur de la méthode mutate n'est pas la même que la référence à l'extérieur de la méthode.
Si vous souhaitez modifier la référence elle-même, vous devez utilisez un paramètre de type de référence explicite, tel que java.util.concurrent.atomic.AtomicReference
AtomicReference<Object> ref = new AtomicReference<Object>("Hello"); mutate(ref); System.out.println(ref.get()); //Goodbye! private void mutate(AtomicReference<Object> ref) { ref.set("Goodbye"); }
Dans ce cas, le paramètre ref est passé par référence, et la valeur de la référence est modifiée au sein de la méthode mutate. En conséquence, le code affichera « Au revoir ! » à la console.
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!