System.arraycopy()
是一种浅拷贝方法。java.lang.System.arraycopy()是否使用浅拷贝?
对于一个基本类型的阵列,将所述值从一个阵列复制到另一个:
int[] a = new int[]{1,2};
int[] b = new int[2];
System.arraycopy(a, 0, b, 0, 2);
b
将{1,2}现在。 a
中的更改不会影响b
。
对于非原始类型的数组,它将从一个阵列复制对象的引用到另一:
MyObject[] a = new MyObject[] { new MyObject(1), new MyObject(2)};
MyObject[] b = new MyObject[2];
System.arraycopy(a, 0, b, 0, 2);
b
将包含new MyObject(2)
的new MyObject(1)
参考,现在。但是,如果a
中的new MyObject(1)
有任何更改,它也会影响b
。
以上陈述是否正确?
您对此有何看法?你有没有尝试写一些示例代码? – Pops 2011-05-23 19:06:23
为什么不打开一个IDE并找出答案? – SWeko 2011-05-23 19:07:32
那么没有示例代码-1,而不是IDE -1?如果你是教授,你会在下个学期出去。有时我需要一个快速的答案。在你真正尝试过之前,你是否问过你的同事一些问题?如果永远不会,你是聪明的TOOOOOOOO。如果你是一个如此聪明的人,你需要耐心等待其他普通人。请稍后忽略我的任何进一步问题,因为大部分时间我可能会问,没有任何示例和IDE的东西。 – 5YrsLaterDBA 2011-05-23 20:42:47