public class 数组初始化 {
public static void main(String[] args) {
//定义第一个数组
int [] arr = new int[3];
//输出数组名
//栈内存:
System.out.println(arr);
//赋值
arr[0]=100;
arr[1]=200;
arr[2]=300;
//访问数组名
//堆内存:
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
//定义第二个数组指向第1个数组
int[ ] arr2 =arr;
arr2[0] = 111;
arr2[1] = 222;
arr2[2] = 333;
//输出两个数组的名及元素
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr2);
System.out.println(arr2[0]);
}
}
第一个数组的地址赋值给了第二个数组的地址
所以第一个数组的地址和第二个数组的地址相同
arr2赋值的值是修改了堆内存
[I@776ec8df
100
200
300
[I@776ec8df
111
[I@776ec8df
111