#Java でメソッド パラメータを渡すには、値渡しと参照渡しの 2 つの方法があります。
1. 値渡し
パラメータの型が int、long などの基本データ型 (基本データ型 8 種類) の場合、処理パラメータの受け渡し 値コピー メソッドの使用
#コード スニペット 1:
public class Test { public static void main(String[] args) { int a = 5; fun(a); System.out.println(a);// 输出结果为5 } private static void fun(int a) { a += 1; } }
#2. 参照渡し
public class Test { public static void main(String[] args) { A a = new A(5); fun(a); System.out.println(a.a);// 输出结果为6 } private static void fun(A a) { a.a += 1; } static class A { public int a; public A(int a) { this.a = a; } } }
#結論: 値渡しでは元の値は変更されませんが、参照渡しでは参照先オブジェクトの値が変更されます #次の状況を見てください:
コード スニペット 3:
public class Test { public static void main(String[] args) { Integer a = 5; fun(a); System.out.println(a);// 输出结果为5 } private static void fun(Integer a) { a += 1; } }これは明らかに参照転送ですが、オブジェクトの値が変更されないのはなぜですか?
基本データ型カプセル化クラスのオートボクシング機能を実際に使用します。
##コード スニペット 3 のプロセスは、次の図で表すことができます。
## スタック フレームを直接変更する アドレス別のオブジェクトを指すため、元の値は変更されません。
【おすすめコース:Java ビデオチュートリアル 】
以上がJavaメソッドのパラメータを渡す2つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。