개발(Dev)/자바(Java)

얕은 복사(Shallow copy) vs 깊은 복사(Deep copy)

XXIV 2022. 9. 27. 17:52

얕은 복사는 ‘=’ 연산자로 수행하는데 주소를 복사하기 때문에 한쪽에서 수정이 발생하면 다른 쪽도 동일하게 수정된다

즉, 복사된 것과 복사본이 동시에 변경된다.

 

깊은 복사는 얕은 복사를 해결하기 위한 방법으로 주소값을 참조하는게 아닌 새로운 메모리 공간에 값을 복사된다

즉, 복사된 것과 복사본이 서로 다른 메모리 공간을 차지하고 있다

clone() 메서드를 써도 되고, 배열의 경우 for문을 돌려주면 된다.