Javaの引数は常に値渡し | Java SE 17 Programmer I
Javaの引数は常に値渡しとは
値渡しと参照渡しとは、メソッド呼び出し時に呼び出し元の変数をメソッドの引数(パラメータ)へどのように伝出・共有するかに関する評価モデルの概念です。
結論として、Javaの引数渡しは「完全にすべて値渡し(Pass by Value)」です。
プリミティブ型の変数を渡す場合は「数値そのもののコピー」が渡されます。
一方、参照型の変数を渡す場合は「オブジェクトの実体そのもの(参照渡し)」ではなく、「メモリ上のアドレス情報(参照ポインタ)の値のコピー」が渡されます。
メソッド内部で受け取った引数変数を操作した際、呼び出し元の元の変数の値や参照先がどのように変化するかを正確に予測するために、この挙動の理解が不可欠です。
具体例