java中值传递和引用传递

java中方法内部修改变量说明:

1、对于基本类型参数,在方法体内对参数进行重新赋值,并不会改变原有变量的值

2、对于引用类型参数,在方法体内对参数进行重新赋予引用,并不会改变原有变量所持有的引用。 

3、方法体内对参数进行运算,不影响原有变量的值。 

4、方法体内对参数所指向对象的属性进行操作,将改变原有变量所指向对象的属性值。 
--------------------- 


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
*/
}

原文地址:https://www.cnblogs.com/zhangshiwen/p/9790783.html