깊은 복사
-
[Java] Shallow copy와 Deep copyJava 2022. 1. 2. 23:30
코드를 짜다보면 배열이나 객체를 복사해야 하는 경우가 발생한다. 이때 실수로 복사를 잘못할 경우 이슈가 생길 수 있기 때문에 주의해야 한다. 이를 위해 얕은 복사와 깊은 복사의 차이점에 대해 명확하게 이해하고 넘어가고자 한다. 얕은 복사(Shallow copy)와 깊은 복사(Deep copy) 얕은 복사(Shallow copy)는 주소값을 복사(스택 영역)하기 때문에 참조하고 있는 실제 값은 같다. 깊은 복사(Deep copy)는 실제 값을 메모리 공간에 복사(힙 영역)하기 때문에 참조하고 있는 실제 값이 다르다. 이해를 쉽게 하기 위해 코드로 알아보도록 하자. 다음과 같이 이름, 나이를 가지는 Person 클래스가 있다고 가정해보자. public class Person { String name; int..