Coding/JAVA

[JAVA] 기본형과 참조형 - 변수 대입

민톨이 2024. 8. 22. 19:11
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