얕은 복사 : 복사시 메모리 주소를 전달해 새로운 객체가 기존의 메모리 주소를 참조 깊은 복사 : 복사시 완전히 다른 새로운 객체를 만들어 전달
(참조 형식 변수에 대해서는 앝은 복사가 발생하므로 깊은 복사를 위해서는 수동으로 새로운 객체를 만들어 재설정하거나 ICloneable 인터페이스를 구현해 Clone() 메서드를 통해 객체 생성 후 캐스팅 해야함)
얕은 복사
객체를 복사하고자 할 때, 새로운 객체가 기존 객체의 메모리 주소를 참조하는 방식으로 복사
같은 메모리 주소를 참조하기 때문에 원본과 복사된 객체의 값이 동일하게 변경됨
참조 타입 변수를 복사할 때 일반적으로 얕은 복사가 발생
깊은 복사
새로운 객체에 기존 객체가 가진 값을 복사하여 새로운 객체를 초기화하는 것
같은 메모리 주소를 참조하지 않고 새로운 주소를 할당하므로 완전히 다른 두 객체가 만들어짐