728x90
✍🏻 자바는 항상 변수의 값을 복사해서 대입한다.
기본형과 참조형 모두 항상 변수에 있는 값을 복사해서 대입한다.
📋 기본형 대입
int a = 10;
int b = a; // a = 10
➡️ 변수에 값을 대입하더라도 실제 사용하는 값이 변수에 바로 들어있기 때문에 해당 값만 복사해서 대입
📋 참조형 대입
Student s1 = new Student();
Student s2 = s1;
➡️ 실제 사용하는 객체가 아니라 객체의 위치를 가리키는 참조값만 복사됨
📋 코드 예시
package ref;
public class VarChange2 {
public static void main(String[] args) {
Data dataA = new Data();
dataA.value = 10;
Data dataB = dataA;
System.out.println("dataA 참조값=" + dataA); // 참조값only
System.out.println("dataB 참조값=" + dataB); // 참조값only
System.out.println("dataA.value = " + dataA.value);
System.out.println("dataB.value = " + dataB.value);
//dataA 변경
dataA.value = 20;
System.out.println("변경 data.value = 20");
System.out.println("dataA.value = " + dataA.value);
System.out.println("dataB.value = " + dataB.value);
//dataB 변경
dataB.value = 30;
System.out.println("변경 dataB.value = 30");
System.out.println("dataA.value = " + dataA.value);
System.out.println("dataB.value = " + dataB.value);
}
}

dataA에 들어있는 참조값을 복사해서 변수 dataB에 대입한다
❗️ 변수 dataA가 가릐키는 인스턴스를 복사하는 것이 아니라 참조값만 복사해서 전달하는 것이다.
'Coding > JAVA' 카테고리의 다른 글
| [JAVA] 클래스/메서드 호출 코드 리팩토링 (0) | 2024.08.23 |
|---|---|
| [JAVA]NullPointerException (0) | 2024.08.23 |
| [JAVA]기본형과 참조형 (0) | 2024.08.21 |
| [JAVA] 영화 리뷰 프로그램 (0) | 2024.08.20 |
| [JAVA] 코드 리팩토링 (0) | 2024.08.20 |