자바에서 배열 복사에는 얕은 복사(Shallow Copy), 깊은 복사(Deep Copy)가 있다.
복사한 배열이 기존 배열과 같은 주소 값을 갖게 되는 것이다.
복사한 배열의 값을 변경하면, 기존 배열도 변경되게 된다.
int[] a = {1,2,3,4,5};
int[] b = a; // 얕은 복사
기존 배열은 새 배열에 덮어 써, 기존 배열과 다른 주소 값을 갖게 되는 것이다.
새 배열의 값을 변경하여도, 기존 배열에 영향을 주지 않는다.
int[] a = {1,2,3,4,5};
int[] b = a.clone(); // 깊은 복사 - 방법1
import java.util.Arrays;
Integer[] a = {1,2,3,4,5};
Integer[] b = Arrays.copyOf(a, a.length); // 깊은 복사 - 방법2
Integer[] a = {1,2,3,4,5};
// 깊은 복사 - 방법3
Integer[] b = new Integer[a];
for (int i=0; i<n; i++) {
b[i] = a[i];
}