Maison  >  Article  >  Java  >  Quelle est la différence entre la référence d’objet et le passage de valeur en Java ?

Quelle est la différence entre la référence d’objet et le passage de valeur en Java ?

WBOY
WBOYoriginal
2024-04-11 18:48:01497parcourir

La différence entre le passage de référence d'objet et le passage de valeur en Java : Passage de valeur : En passant une copie du type de données de base, la modification de la copie n'affectera pas la variable d'origine. Passage par référence : Passer une référence à une variable de type référence. La modification de l'objet pointé par la référence affectera toutes les variables contenant la référence.

Quelle est la différence entre la référence d’objet et le passage de valeur en Java ?

La différence entre la référence d'objet et le passage de valeur en Java

Préface
Le langage de programmation Java prend en charge deux méthodes : le passage de valeur et le passage de référence. Comprendre les différences entre ces deux types de transmission est crucial pour écrire des programmes Java efficaces et corrects.

Pass-by-value
Pass-by-value transmet une copie d'une variable à une méthode ou à un autre thread. La variable d'origine et la copie sont indépendantes et la modification de la copie n'affectera pas la variable d'origine. Les types de données de base (tels que int, double, boolean, etc.) sont toujours transmis par valeur.

Exemple :

int a = 10;
int b = a; // 值传递,创建 a 的副本
b++;  // 修改副本
System.out.println(a); // 输出 10

Pass by reference
Pass by reference transmet une référence à une variable à une méthode ou à un autre thread. La variable et la référence d'origine pointent vers le même objet, ce qui signifie que toute modification apportée à l'objet sera reflétée dans toutes les variables contenant cette référence. Le passage par référence est utilisé pour faire référence à des types d'objets (tels que des classes, des interfaces, etc.).

Exemple :

Person person1 = new Person("John", 25);
Person person2 = person1; // 引用传递,person2 指向与 person1 相同的对象
person2.setName("Jane"); // 修改对象
System.out.println(person1.getName()); // 输出 "Jane"

Cas pratique

Transmission de valeurs : transmission de types de données de base

public void increment(int value) {
    value++;  // 仅修改局部副本
}

Transmission de référence : transmission de référence d'objet

public void changeName(Person person) {
    person.setName("New Name");  // 修改实际对象
}

Conclusion
Un comprendre la relation entre la référence d'un objet et sa valeur passer La différence est essentielle pour écrire du code Java robuste et maintenable. Les types de données primitifs sont transmis par valeur, tandis que les objets sont transmis par référence. En examinant attentivement les types de variables que vous transmettez, vous pouvez éviter tout comportement inattendu et écrire un code correct.

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!

Déclaration:
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