首先看下java中的参数传递机制:
- 基本数据类型传值(未传递地址)方式:
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 */