ホームページ >Java >&#&チュートリアル >Java での値の受け渡しと参照の受け渡しの違いと適用可能なシナリオを分析する

Java での値の受け渡しと参照の受け渡しの違いと適用可能なシナリオを分析する

PHPz
PHPzオリジナル
2024-01-30 10:50:06921ブラウズ

Java での値の受け渡しと参照の受け渡しの違いと適用可能なシナリオを分析する

Java での値の受け渡しと参照の受け渡しの違いとアプリケーション シナリオの分析

はじめに:
Java では、パラメーターを渡すメソッドによく遭遇します。 、パラメータを渡すには、値を渡す方法と参照を渡す方法の 2 つがあります。見た目は似ていますが、実際の動作は異なります。この記事では、Java での値の受け渡しと参照の受け渡しの違いについて詳しく説明し、それらをより深く理解して適用するのに役立つ具体的なコード例を示します。

  1. 値による受け渡し: 元の変数のコピーをメソッドに渡します。
    プリミティブ型変数をパラメータとしてメソッドに渡すとき、実際には元の変数の値をコピーし、コピーした値をメソッドに渡すだけです。メソッド内のパラメータに変更を加えても、元の変数の値には影響しません。

以下は値転送のサンプルコードです:

public class ValuePassingExample {
    public static void main(String[] args) {
        int num = 10;
        System.out.println("Before calling method, num = " + num);
        changeValue(num);
        System.out.println("After calling method, num = " + num);
    }
    
    public static void changeValue(int num) {
        num = 20;
        System.out.println("Inside method, num = " + num);
    }
}

出力結果:

Before calling method, num = 10
Inside method, num = 20
After calling method, num = 10

内部でパラメータの値が変更されていることが分かりますメソッドの外では、元の変数の値は変更されません。

  1. Pass by Reference: オブジェクトの参照アドレスをメソッドに渡します。
    オブジェクトをパラメータとしてメソッドに渡すとき、実際に渡されるのはオブジェクトの参照アドレスです。メソッド内の参照に対する操作はすべて、元のオブジェクトに影響します。

以下は参照渡しのサンプル コードです:

public class ReferencePassingExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Hello");
        System.out.println("Before calling method, sb = " + sb);
        changeValue(sb);
        System.out.println("After calling method, sb = " + sb);
    }
    
    public static void changeValue(StringBuilder sb) {
        sb.append(" World");
        System.out.println("Inside method, sb = " + sb);
    }
}

出力結果:

Before calling method, sb = Hello
Inside method, sb = Hello World
After calling method, sb = Hello World

が指すオブジェクトに変更が加えられたことがわかります。参照はメソッド内で実行され、操作は元のオブジェクトに影響を与えます。

  1. アプリケーション シナリオ分析
  2. メソッド内の元の変数の値を変更する必要がある場合は、値の受け渡しを使用できます。
  3. メソッド内でオブジェクトの値を変更する必要がある場合、または複数の値を返す必要がある場合は、参照渡しを使用できます。

値の受け渡しと参照の受け渡しの違いを通じて、Java でのパラメーター受け渡しのメカニズムをより深く理解し、実際のニーズに応じて適切な方法を選択できます。

結論:
この記事では、Java における値の受け渡しと参照の受け渡しの違いを分析し、具体的なコード例を示します。これら 2 つの転送方法を理解して適用することは、メソッド パラメータの問題をより適切に処理し、プログラムの柔軟性と保守性を向上させるのに役立ちます。

以上がJava での値の受け渡しと参照の受け渡しの違いと適用可能なシナリオを分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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