小学生级别Java笔记_数组的浅拷贝和深拷贝简单举例_2019/7/19

拷贝数组即,用一个数组给另一个数组赋值
本文将以两个简单的例子,介绍这两种拷贝的不同
引用浅拷贝得到的数组时,会改变原数组元素值;
引用深拷贝得到的数组时,只改变新创建的数组,不影响原数组元素值。

浅拷贝仅把数组arr1的引用值,赋值给数组的引用变量arr2.
相当于只改变了arr2所指向的的首地址,引用变量arr2改变,而arr2中的元素数值不变

int[] nums1 = {1,2,3,4};
int[] nums2 = nums1;//用nums1的引用给nums2赋值

boolean same1 = nums1==nums2;//用==检验两引用变量值是否相同
System.out.println("nums1浅拷贝得到的nums2,是否==?"+same1);//true

深拷贝创建一个新长度、元素值都相同的新数组

int[] nums1 = {1,2,3,4};
int[] nums2 = Arrays.copyOf(nums1, nums1.length);//用copyOf创建一个长度与元素值相同的新数组
boolean same2 = Arrays.equals(nums1, nums2);
//Arrays类重载的equals方法,能具体的比较两数组的内容(长度and元素值)
System.out.println("nums1深拷贝得到的nums2是否equals?"+same2);//true

发布了33 篇原创文章 · 获赞 4 · 访问量 2179

猜你喜欢

转载自blog.csdn.net/weixin_44981510/article/details/96475847