Java中的参数传递方式有两种,分别是引用传递和值传递。
值传递指的是将参数的值复制一份后传递给方法内部,方法内部对传递进来的参数进行修改并不会影响到原来的参数值,也不会影响方法外部的变量值。例如:
public static void main(String[] args) { int a = 1; changeValue(a); System.out.println(a); // 输出结果为1 } public static void changeValue(int b) { b++; }
上面的代码中,我们在方法内部将传递进来的参数值b加1后,并没有影响到原来的变量a的值。
而引用传递则是将参数的引用传递给方法内部,方法内部对传递进来的参数进行修改,会影响到原来的参数值,也会影响到方法外部的变量值。例如:
public static void main(String[] args) { int[] a = new int[]{1}; changeValue(a); System.out.println(a[0]); // 输出结果为2 } public static void changeValue(int[] b) { b[0]++; }
上面的代码中,我们在方法内部将传递进来的参数b所指向的数组的第一个元素加1后,影响到了原来的变量a的值,输出结果为2。