Replies: 3 comments
-
Java에서 객체는 힙에 생성되고, 참조 변수는 스택 영역에 생성됨. 깊은 복사: 힙에 존재하는 객체를 복사하여 사용하는 것. |
Beta Was this translation helpful? Give feedback.
-
Java에서 참조형 변수를 사용할 경우 직접적인 값이 아닌 값에 대한 참조(주소값)을 저장한다. 따라서 여러 개의 변수가 동일한 값에 대해 참조를 가질 수 있고, 변경이 연쇄적으로 발생할 수 있다. 얕은 복사는 객체의 참조 값만 복사한다. 복사본이 원본과 동일한 참조값을 갖게 되므로 한 개의 객체에서 변경이 일어났을 때 해당 참조를 가지는 모든 객체가 동일한 변경을 겪게 된다는 단점이 있다. 얕은 복사는 참조 값만 복사하기 때문에 깊은 복사에 비해 메모리 사용이 덜하며 실행 속도가 빠르다. 깊은 복사는 객체의 모든 필드를 복사해 새로운 객체로 만든다. 복사본과 원본이 서로 다른 참조값을 갖게 되어 독립적인 메모리 영역을 가르키게 되므로 변화가 서로에게 영향을 미치지 않는다. 모든 필드를 복사해 새 객체를 만들어야 하는 만큼 얕은 복사에 비해 메모리 사용이 많으며 실행 속도가 느리다. |
Beta Was this translation helpful? Give feedback.
-
얕은 복사는 복사 대상이 되는 객체의 참조(Heap 메모리 주소)를 그대로 사용하도록 복사하는 방식입니다. 깊은 복사의 경우, 복사 대상이 되는 객체의 값과 같은 값을 가진 새로운 객체를 만들어 Heap 메모리에 할당하는 방식입니다. |
Beta Was this translation helpful? Give feedback.
-
.
Beta Was this translation helpful? Give feedback.
All reactions