Java パラメータの受け渡し: 値と参照
Java では、パラメータ受け渡しのセマンティクスが C# などの言語とは異なります。参照の受け渡しを明示的に示します。
参照を囲む混乱
を渡す Java の「値渡し」の性質により、開発者は混乱します。これは、参照型 (オブジェクトなど) のパラメーターが実際には参照によって渡されるためです。ただし、この「参照」は単にオブジェクトのメモリ位置であり、オブジェクト自体ではありません。
値の受け渡しのデモ
次のコード スニペットを考えてみましょう:
Object o = "Hello"; mutate(o); System.out.println(o); private void mutate(Object o) { o = "Goodbye"; }
mutate メソッドの "o" パラメータが実際に参照しているため、このコードはコンソールに "Hello" を出力します。オリジナルのリファレンスのコピー。このコピーに新しい値を割り当てても、元のオブジェクトの値には影響しません。
参照変更の代替オプション
元のオブジェクトを変更するには、次の 2 つのオプションがあります。
AtomicReference<Object> ref = new AtomicReference<Object>("Hello"); mutate(ref); System.out.println(ref.get()); // Goodbye! private void mutate(AtomicReference<Object> ref) { ref.set("Goodbye"); }
以上がJava のパラメータ受け渡しは本当に値渡しなのでしょうか、それとももっとニュアンスのあるものなのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。