[Java] 얕은 복사 vs 깊은 복사
·
Java
배열과 같은 객체를 복사하는 경우, 우리는 얕은 복사 또는 깊은 복사, 두 가지 복사 방법을 선택할 수 있다. 대표적으로 Object에서 제공하는 메소드인 clone()과 Arrays에서 제공하는 copyOf()를 통해 개념을 정리해보자. 얕은 복사 (Shallow Copy) 얕은 복사는 복사 대상의 객체를 새로운 객체에 복사하지만, 그 객체 내에 있는 참조 변수들은 원본 객체와 동일한 객체를 참조한다. 원본 객체와 복사본 객체는 동일한 하위 객체를 공유하기 때문에 복사본을 변경할 때 원본에도 영향을 미칠 수 있다. Object의 clone() 메소드는 얕은 복사를 수행한다. 예시를 통해 알아보자. class MyObject implements Cloneable { private int[] array; ..