Java値転送、参照渡し

ただ、ユースケースを書いて、我々は唯一の呼び出し-javaの、ノーパス呼び出しのため、メソッドに渡されたパラメータの値を変更する必要があります。そのため、Javaメソッドのパラメータの値を変更することは不可能です。しかし、あなたは参照変数のプロパティ値を変更することができます。
何次の単語を理解するように注意してください:

1、对于基本类型参数,在方法体内对参数进行重新赋值,并不会改变原有变量的值。
2、对于引用类型参数,在方法体内对参数进行重新赋予引用,并不会改变原有变量所持有的引用。 
3、方法体内对参数进行运算,不影响原有变量的值。 
4、方法体内对参数所指向对象的属性进行操作,将改变原有变量所指向对象的属性值。 

これは、基本データ型である、伝統的な価値観が達成され、唯一のパラメータは、元の値を変更しません。この基準のデータ・タイプへの参照は、実際には、パラメータの動作に相当するが、元の参照を変更しない、動作します。プロパティは、この操作に言及するときただし、通話中にパス-CPPの同等は、あなたが参照するプロパティの値を変更することができます。
例えば:

public class Main {  
  
    private static void getMiddleOne(boolean b, Boolean boo, Boolean[] arr){  
        b = true;  //形参,不会改变原有值  
        boo = new Boolean(true);  //引用变量的直接操作相当于值传递,不会改变原来的引用变量  
        arr[0] = true;  //引用变量的属性的操作,会改变原有引用的属性,相当于传址调用  
    }  
      
    //测试  
    public static void main(String[] args) {  
        boolean b = false;  
        Boolean boo = new Boolean(false);  
        Boolean[] arr = new Boolean[]{false};  
  
        getMiddleOne(b, boo, arr);  
          
        System.out.println(b);    
        System.out.println(boo.toString());  
        System.out.println(arr[0]);  
  
        /** 
         * output: 
         *      false 
         *      false 
         *      true 
         */  
    }  
}  

おすすめ

転載: www.cnblogs.com/eternityz/p/12239576.html