ホームページ  >  記事  >  Java  >  Java におけるオブジェクト参照と値の受け渡しの違いは何ですか?

Java におけるオブジェクト参照と値の受け渡しの違いは何ですか?

WBOY
WBOYオリジナル
2024-04-11 18:48:01464ブラウズ

Java でのオブジェクト参照の受け渡しと値の受け渡しの違い: 値の受け渡し: 基本データ型のコピーを渡します。コピーを変更しても元の変数には影響しません。参照による受け渡し: 参照型変数への参照の受け渡し 参照が指すオブジェクトを変更すると、参照を保持するすべての変数に影響します。

Java におけるオブジェクト参照と値の受け渡しの違いは何ですか?

#Java でのオブジェクト参照と値渡しの違い

序文Java プログラミング言語サポート 値渡しと参照渡しの 2 つの方法があります。これら 2 つのタイプの受け渡しの違いを理解することは、効率的で正しい Java プログラムを作成するために重要です。

値の受け渡し 値の受け渡しでは、変数のコピーをメソッドまたは他のスレッドに渡します。元の変数とコピーは独立しており、コピーを変更しても元の変数には影響しません。プリミティブ データ型 (int、double、boolean など) は常に値によって渡されます。

例:

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

参照渡し参照渡しは、変数への参照をメソッドまたは他のスレッドに渡します。元の変数と参照は同じオブジェクトを指します。つまり、オブジェクトへの変更は、その参照を保持するすべての変数に反映されます。参照渡しは、オブジェクト タイプ (クラス、インターフェイスなど) を参照するために使用されます。

#例:

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

実際のケース

#値の受け渡し: 基本データ型の受け渡し

public void increment(int value) {
    value++;  // 仅修改局部副本
}
参照渡し: オブジェクト参照の受け渡し

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

オブジェクト参照と値渡しの違いを理解することは、堅牢な記述を行うために不可欠です。 Java コードは非常に重要です。プリミティブ データ型は値によって渡されますが、オブジェクトは参照によって渡されます。渡す変数の型を慎重に検討することで、予期しない動作を回避し、正しいコードを書くことができます。

以上がJava におけるオブジェクト参照と値の受け渡しの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。