静态数组间的复制

深度拷贝   开辟了一个新的空间把得到的值存在那个空间里
两个数组的地址不一样
1 一维数组
int[] src={1,3,5,6,7,8};
int[] dest = new int[6];
System.arraycopy(src, 0, dest, 0, 6);


2 二维数组的深度复制   注: 一维数组下的深拷贝,对于二维数组只是浅拷贝!!
  
int[] src={{1,1},{3,3},{5,5},{6,6},{7,7},{8,8}};
int[][] dest = new int[6][2];
//分别对每一行进行深拷贝
for(int i = 0; i < src.length; i++){
          System.arraycopy(src[i], 0,dest[i], 0, src[i].length);
}
 



JAVA中没有多维数组的概念,只有数组的数组,因此QPN是一个数组的数组,同理UQPN 也是。那么QPN 含有两个元素,分别指向两个数组的引用,而arrayCopy 就是负责把数组的内容copy 过去的,因此QPN的内容 (2 个引用) 被copy 到UQPN 中去了,因此对QPN做修改,QPN也会同样跟着变化

猜你喜欢

转载自592713711.iteye.com/blog/2235980