首先看下java中的参数传递机制:

image.png

  • 基本数据类型传值(未传递地址)方式:

class Main{ public static void main(String[] args) { Main main = new Main(); int a = 20; System.out.println(“test之前的a:” + a); main.test(a); System.out.println(“test之后的a:” + a); } void test(int a) { a = 10; System.out.println(“test中的a:” + a); } /* print: test之前的a:20 test中的a:10 test之后的a:20 */ }

  • 引用数据类型传值(传递的是引用,既地址)方式:

@Test public void test1(){ int[] arr = {2,4,5,6}; int[] arr2 = getArr(arr); for(int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" “); }

System.out.println();
for(int i = 0; i < arr2.length; i++) {
    System.out.print(arr[i]+" ");
}

} public int[] getArr(int[] arr){ for(int i = 0; i < arr.length; i++){ arr[i] = 2; } return arr; } /*

  • 打印结果:
  • 4 8 10 12
  • 4 8 10 12 */