1、int[] arr1=new int[]{1,2,3}; int[] arr2=new int[]{100,200,300};栈内存中产生两个引用型变量arr1,arr2分别指向(所谓的指向就是把数组的首地址值赋予了该变量,通过寻址就可以找到该数组)了堆内存中的两个数组int[]{1,2,3}, int[]{100,200,300}。
2、arr1=arr2;把arr2保存的地址值赋予了arr1,即arr1也指向了数组 int[]{100,200,300}。而数组int[]{1,2,3}会被垃圾回收机制回收的。
3、arr1[0]=5,把arr1指向的数组零角标对应的值置为5,由于arr2也是指向该数组的,所以输出的是5,200,300.要明确引用型变量和数组(或)对象之间的关系。 |