얕은 복사와 깊은 복사
얕은 복사(Shallow Copy)
복사하려는 원본 객체에 대해서 새로운 단일 객체 또는 새로운 복합 객체를 만들고 원본 객체를 참조하는데 즉, 다양한 복합 멤버 변수를 갖고 있는 객체가 인스턴스가 생성될 때 인스턴스화 되면서 메모리에 할당된 주소의 값을 참조함 또한 얕은 복사는 복사 객체가 원본 객체에 종속적임
얕은 복사는 주소에 의한 참조 즉, call-by-reference와 유사한 개념이 됨
깊은 복사(Deep Copy)
복사하려는 원본 객체에 대해서 새로운 단일 객체 또는 새로운 복합 객체를 만들고 원본 객체를 대상으로 인스턴스화할 수 있는 클래스 내부의 클래스 변수(static)와 메서드(static)뿐 아니라 인스턴스 값 모두를 복사하여 원본 객체로부터 독립적인 객체를 생성함
깊은 복사는 새로운 객체가 원본 객체 자체를 Copy 하는 것이다. 즉, call-by-values와 유사한 개념이됨