System.arraycopy()和Arrays.copyOf()是深拷贝or浅拷贝

基本类型:

输出结果:

原来数组[0]的值–>121
arraysCopyOf数组[0]的值–>12
systemArrayCopy数组[0]的值–>12

String类型:

输出结果:

原来数组[0]的值–>121
arraysCopyOf数组[0]的值–>12
systemArrayCopy数组[0]的值–>12

包装类型:

输出结果:

原来数组[0]的值–>121
arraysCopyOf数组[0]的值–>12
systemArrayCopy数组[0]的值–>12

其他类型:

输出结果:

原来数组[0]的值–>User(name=张三三, age=211)
arraysCopyOf数组[0]的值–>User(name=张三三, age=211)
systemArrayCopy数组[0]的值–>User(name=张三三, age=211)

总结:

Arrays.copyOf(T[] orignial,int newLength)和System.arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

相对于数组而言,都是创建了一个新的数组,是深拷贝;

相对于数组元素而言,当数组为一维数组,并且元素是基本类型、String、包装类型时都是深拷贝,其他类型是浅拷贝。

欢迎关注我的博客,获取更多精品知识合集

如果觉得对您有帮助的话,请帮我点赞、分享!您的支持是我不竭的创作动力!

欢迎关注我的公众号,获取更多技术知识分享

Original: https://www.cnblogs.com/lirun/p/14958514.html
Author: 李润
Title: System.arraycopy()和Arrays.copyOf()是深拷贝or浅拷贝

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/569059/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球