1. 얕은 복사
: 객체가 가진 멤버들의 값을 새로운 객체로 복사하는데 만약 개체가 참조타입의 멤버를 가지고 있다면 참조값만 복사. 즉, 동적 할당 받은 변수의 주소값을 공유! 복사한 대상자가 바뀌면 복사한 개체도 같이 변함. 따라서 '의존적 복사'라 할 수 있다.
2. 깊은 복사
: 전체복사. 객체가 가진 모든 멤버를 복사하는 것. 객체가 참조타입의 멤버를 포함할 경우 참조값의 복사가 아닌 참조된 객체 자체가 복사됨. 즉, 새로이 동적 할당을 받고, 원본의 데이터를 복사! 복사 후 완전히 '개별적인 객체'가 됨.