본문 바로가기

얕은 복사2

[Java] 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) 얕은 복사(Shallow Copy)란? 얕은 복사로 객체가 복사된다면 실제로는 하나의 주소 값을 가지고 있으므로 하나라고 볼 수 있습니다. 여러 객체가 같은 주소를 참조하기 때문에 값을 변경해버리면 다른 대상의 값 또한 바뀌어 버리는 문제가 발생합니다. 반대로 메모리 측면에서 본다면 한 객체로 할 수 있는 일은 하나로 끝내는것이 좋습니다. 객체를 복사를 했을 때 복사한 만큼 수량이 증가한다면 메모리 측면에서 본다면 비효율적이게 됩니다. 아래 코드는 얕은 복사에 대한 예제입니다. package JavaStydy; public class ShallowCopy { public static void main(String[] args) { // 얕은 복사(Shallow Copy) // 복사된 배열이나 원본 배열이.. 2022. 9. 30.
[Java] 얕은 복사에 자세히 알아보면? / Shallow Copy Shallow Copy(얕은 복사) Shallow Copy(얕은 복사)는 '주소값'을 복사함으로, 참조하고 있는 실제값이 같습니다. 아래와 같은 클래스 파일을 만들었습니다. "bal1" 이라는 이름을 가진 인스턴스를 생성했습니다. 또한, 메서드를 통해 name, money를 정해줬습니다. 인스턴스를 "bal1Copy" 라는 이름을 가진 인스턴스에 복사했습니다. 이에, "bal1" changeName 메서드를 통해 name을 변경했고, spenMoney 메서드를 통해 money를 지출했습니다. 그렇다면 "bal1"은 tom 이라는 name과 900원을 가지고 있고, "bal1Copy"은 변경 전의 상황인 bob, 1000원을 가지고 있어야 한다고 생각이 듭니다. 하지만, 현재 상황은 어떻게 될까요? 출력 .. 2022. 9. 28.