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