Java プログラミングの理解を深めるために、Java での値の受け渡しと参照の受け渡しの違いを分析します。具体的なコード例が必要です。
Java プログラミングでは、パラメーターの受け渡しは分割されます。値渡しと参照渡しの 2 つの方法があります。これら 2 つの配信方法の違いを理解することは、Java のメモリ管理とメソッド呼び出しメカニズムを深く理解するために非常に重要です。
値による受け渡しは、実際のパラメーター自体ではなく、実際のパラメーターのコピーが渡されることを意味します。メソッドが呼び出されると、実際のパラメータの値が新しい変数にコピーされ、メソッドに渡されます。
Pass by Reference は、実パラメータの値の代わりに実パラメータの参照 (アドレス) が渡されることを意味します。メソッドが呼び出されると、実際のパラメータへの参照がメソッドに渡されます。したがって、メソッドは参照によって実パラメータの値を変更できます。
以下では、特定のコード例を使用して、値の転送と参照の転送の違いを示します。
public class PassByValueExample { public static void main(String[] args) { int number = 5; System.out.println("Before changeValue method, number = " + number); changeValue(number); System.out.println("After changeValue method, number = " + number); } public static void changeValue(int num) { num = 10; System.out.println("Inside changeValue method, num = " + num); } }
上記のコード例では、main
メソッドで整数変数 number
を定義し、その初期値を 5 に設定しました。次に、changeValue
メソッドを呼び出し、実際のパラメータとして number
をメソッドに渡しました。
changeValue
メソッド内で、仮パラメータ num
の値を 10 に設定します。次に、num
の値を出力します。
コードを実行すると、出力結果は次のようになります:
Before changeValue method, number = 5 Inside changeValue method, num = 10 After changeValue method, number = 5
仮パラメータ num
の値が 内で変更されていることがわかります。 changeValue
メソッドを使用しますが、実際のパラメータ number
には影響しません。これは、値を渡すメソッドでは実際のパラメーターのコピーが転送され、そのコピーを変更しても実際のパラメーター自体には影響しないためです。
次に、参照渡しのサンプルコードを見てみましょう。
public class PassByReferenceExample { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello"); System.out.println("Before changeValue method, sb = " + sb); changeValue(sb); System.out.println("After changeValue method, sb = " + sb); } public static void changeValue(StringBuilder builder) { builder.append(" World"); System.out.println("Inside changeValue method, builder = " + builder); } }
上記のコード例では、main
メソッドで StringBuilder
オブジェクト sb
を定義し、その初期値を「Hello」に設定しました。 。次に、changeValue
メソッドを呼び出し、実際のパラメータとして sb
をメソッドに渡しました。
changeValue
メソッド内で、builder.append
メソッドを通じて文字列「World」を追加します。次に、builder
の値を出力します。
コードを実行すると、次のような出力が得られます。
Before changeValue method, sb = Hello Inside changeValue method, builder = Hello World After changeValue method, sb = Hello World
参照渡しで渡されるのは、オブジェクトの参照 (アドレス) と、その参照に対する操作であることがわかります。オブジェクト自体に直接影響します。したがって、changeValue
メソッド内の builder
オブジェクトに文字列を追加すると、実際のパラメータ sb
の内容も変更されます。
上記のコード例を通じて、Java における値の受け渡しと参照の受け渡しの違いを明確に理解できます。メソッド呼び出しとメモリ管理を理解するために非常に重要です。実際のプログラミングプロセスでは、特定のニーズや状況に応じてパラメータを処理するための適切な転送方法を選択する必要があります。
以上がJava プログラミングにおける値の受け渡しと参照の受け渡しの違いについて詳しく説明し、理解を深めるのに役立ちます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。