数组赋值机制与数组拷贝
-
基本数据类型赋值,这个值就是具体数据,而且互相不影响。
int n1 = 2;int n2 = n1;
-
数组在默认情况下是引用传递,赋的值是地址。 看一个案例,并分析数组赋值的内存图(重点)。 //代码 ArrayAssign.java
int[] arr1 = {1,2,3};
int[] arr2 = arr1;
值传递 与 引用传递 区别
int n1 = 10; int n2 = n1; n2 = 80;
int[] arr1 = {1,2,3}; int[] arr2 = array; arr2[0] = 10
-
值传递(数据类型):将n1的值拷贝给n2(n2生成新空间),n2重新赋值80,n1不会受到影响,这就是值传递/值拷贝;
-
引用传递(引用类型):把arr1的地址拷贝给arr2,而不是重新创造一个空间,arr2进行改变时,arr1也会改变,这就是地址拷贝/地址拷贝。
数组的拷贝
int arrayCopy1[] = {10,50,60,70,80,90}; int arrayCopy2[] = new int[arrayCopy1.length]; for(int i = 0;i < arrayCopy1.length;i++){ arrayCopy2[i] = arrayCopy1[i]; }
数组的拷贝,首先要创建一个新的空间,然后使用for循环进行逐个拷贝,且arrayCopy1不影响arrayCop2的使用.