너무 하나하나따져서 그런지 넘 헷갈린다 이해안가는부분이 많네요...
아까 String 쪽 얕은복사도 해결 못했는데 새벽이라 그냥 넘어갔는데..
깊은 복사보는데 이건 또 왜 이해가안가는지...
깊은복사가 참조값 뿐만아니라 참조하고 있는 대상(객체)까지 복사한다는데..
그렇다면 이경우 참조값은 어떻게되는지.. 참조값은 같은데 각각 다른 것을 가르킨다는 말인지...
원래 뭘 참조할때 참조값(주소값)을 기준으로 참조하는것 아니었나요..
이해가 안가네..--
참조값은 스택 메모리영역에서 참조하는 힙 메모리영역의 주소값을 의미합니다. 얕은복사의 경우 동일한 주소값을 가지기 때문에 값을 변경하면 동일하게 적용됩니다. 하지만 깊은 복사의 경우 서로다른 주소값을 가지게되며, 독립적인 객체로서 메모리에 존재하게 됩니다.
즉, 얕은복사는 힙메모리에 한개의 객체만 생성된 상태이고, 깊은복사는 두개이상의 객체가 독립적으로 공존하는 상태인것입니다.
이딴 설명 무시하셈