基本类型:
输出结果:
原来数组[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/
转载文章受原作者版权保护。转载请注明原作者出处!