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 ?

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 ?

DDD
Libérer: 2024-12-29 18:44:14
original
1042 Les gens l'ont consulté

Does Java Pass Parameters by Reference or by Value, and How Can You Achieve Reference-Like Behavior?

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"; }
Copier après la connexion

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. Voici un exemple :

AtomicReference<Object> ref = new AtomicReference<Object>("Hello");
mutate(ref);
System.out.println(ref.get()); //Goodbye!

private void mutate(AtomicReference<Object> ref) { ref.set("Goodbye"); }
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal