[Java] 참조와 복제

정석·2023년 12월 18일

Java

목록 보기
11/39
post-thumbnail

1. 참조 ▶︎ 바로가기 키

다음과 같은 코드가 있을 때 인스턴스 a와 b는 같은 결과를 가져온다.

A a = new A(1);
A b = a;
b.id = 2;

값이 같아지는 이유가 무엇일까?

인스턴스가 생성될 때 인스턴스 변수에는 이 저장되는 게 아니라 값이 저장되어 있는 위치 가 저장된다. 따라서 위 코드를 보았을 때, 인스턴스 a 는 A(1)에 대한 값이 저장되어 있는 저장소의 위치를 저장한다.

인스턴스 b 변수 또한 a 와 같다고 했기에 a 에 저장되어 있던 A(1)의 값이 저장되어 있는 저장소 위치를 저장하게 되는 것이다. 그림으로 표현하자면 아래와 같다.

a 라는 인스턴스와 b라는 인스턴스는 둘 다 new A()로 생성된 값이 저장되어 있는 위치를 가리키고 있는데 이를 참조 하고 있다고 한다.

2. 복제

복제는 말 그대로 값을 복사 붙여넣기 한다. 복제의 예시 코드는 아래와 같으며 결과는 다음과 같다.

int a = 1;
int b = a;


생활코딩의 Java 강의를 참고하였습니다.

0개의 댓글