public class MethodDemo{
public static void main(String[] args){
//传递形式1
int a = 1;
int b = 2;
change(a,b);
System.out.println(a); //1
System.out.println(b); // 2
//传递形式2
int[] arr = {1,2,3,4};
System.out.println(arr[2]); // 3
change(arr);
System.out.println(arr[2]); // 100
}
public static void change(int a,int b){
a = a+b;
b = b+a;
}
public static void change(int[] arr){
arr[2] = 100;
}
}
传递形式1:只是把变量中的数据传递给目标方法,目标方法进行处理后并无返回值传递同时主方法也无接收,所以这种方式并没有改变主方法中变量的参数,所以主方法中的变量不会被改变。
传递形式2:这种方式是把数组的地址传递给了目标方法,目标方法是对同一块内存地址做处理,改变的是对应那一块的内存地址所存的数据,所以改变了主方法中的值。