JAVA에는 얕은 복사와 깊은 복사라는 개념이 있다. 1. 얕은 복사 원본 객체와 복사본 객체가 동일한 내부 객체를 참조하는 복사 방식이다. 즉, 원본 객체를 복사본의 객체가 가리키고 있는 C에서 포인터와 유사한 개념이다. ex) int[] a = {1,2,3}; //1. int[] b = a; //2. int[] b = a.clone(); int[][] a; //값이 정의 되어있다고 가정 //3. int[][] b = Arrays.copyOf(a, a.length); 이처럼 쉽게 복사할 수 있지만 만약 b 배열의 값을 수정하면 같은 객체를 공유하고 있기 때문에 a 배열의 값도 바뀌게 된다. 2. 깊은 복사 깊은 복사는 우리가 일반적으로 사용하려는 그 복사가 맞다. 즉, 복사된 객체가 서로 독립적이라는 ..