package com.qq.demo02;
import java.util.Arrays;
public class ParamTest {
public static void test1(int n){
n=2;
System.out.println("方法中n = " + n);
}
public static void test2(int[]arr){
arr[1]=100;//改变数组对象0下标的元素
System.out.println("方法中arr = " + Arrays.toString(arr));
}
public static void main(String[] args) {
//值传递测试
int n = 1;
test1(n);
System.out.println("外部n = " + n);
//引用传递测试
int[]arr={1,2};
test2(arr);
System.out.println("外部arr = " + Arrays.toString(arr));
//把对象在堆内存的首地址(位置)保存给不同的变量
int[]brr = {100,20,30,45};
int[]crr = brr;
int[]drr = brr;
//请问:brr、crr、drr,一共几个数组?
// 1个(三个变量保存的是同一个对象的地址,表示的是同一个数组对象)
drr[1] = 200;//改变crr变量保存的数组对象的元素,另外两个变量也跟着改变
System.out.println("brr[0]"+brr[0]);//200
System.out.println("brr[0]"+crr[0]);//200
System.out.println("brr[0]"+drr[0]);//200
}
}