如同一维数组一样,二维数组中也有四种拷贝方式,且与一维数组中的拷贝方式一样
分别为:
1.for循环拷贝
2.clone
3.System.arraycopy
4.Arrays.copyOf
四种用法在上节都已经讲过,那让我们看看在二维数组中与在一维数组中会有什么不
同。
1.for循环拷贝

输出结果

可以看出改变array[0][0]的值array2[0][0]的值并不发生改变,原因是array2拷贝只是
让array所引用的地址拷贝得到了array中的值,本质上与array引用值的地址没有关
系,所以改变array2中的值,array中的值并不发生改变。这里我们用图示再来看看

然后让我们看看引用类型的二维数组

拷贝的函数

输出结果

改变t1[0][0]的值后t2[0][0]的值也一起改变,原因是t1,t2是引用类型的数组。数组中存储的是一块地址。指向储存值得地址,拷贝得到的也是地址,且是同一块区域的地址,改变任一地址中的值,另一个对应位置的值也发生相应改变。我们用图示来了解一下

可以清楚的看出拷贝后,数组中的地址与原数组对应同一块地址。属于浅拷贝。剩下三种拷贝方式与第一种类似,我们就只举例它的用法。
2.clone

引用类型的数组

3.System.arraycopy

引用类型数组

4.Arrays.copyOf

引用类型数组

值得注意的是引用类型的二维数组在栈中的存储方式。上述就是二维数组的四种拷贝的用法。
(新手入门,如有错误,请多多指教)
本文详细介绍了二维数组的四种拷贝方法:for循环拷贝、clone、System.arraycopy和Arrays.copyOf,并通过实例说明了它们在引用类型数组中的工作原理。特别强调了浅拷贝和深拷贝的区别。
2944





