Java(폐지)/Java 공부
참조 변수의 복사
kyeongjun-dev
2020. 7. 20. 10:39
package reference;
public class CallByReference {
public static void main(String[] args) {
Animal ref_a = new Animal();
Animal ref_b = ref_a;
ref_a.age = 10;
ref_b.age = 20;
System.out.println(ref_a.age); // 20
System.out.println(ref_b.age); // 20
}
}
class Animal {
public int age;
}
- 결과
20
20
- T메모리

- ref_a와 ref_b가 가지는 값은 :Animal의 주솟값이다.
- Call by value와 Call by reference의 차이는 변수가 가지고 있는 값을 '값 자체'로 해석하느냐, '주소값'으로 해석하느냐의 차이다.
package reference;
public class CallByReference {
public static void main(String[] args) {
Animal ref_a = new Animal();
Animal ref_b = ref_a;
ref_a.age = 10;
ref_b.age = 20;
System.out.println(ref_a.age); // 20
System.out.println(ref_b.age); // 20
System.out.println(ref_a);
System.out.println(ref_b);
}
}
class Animal {
public int age;
}

- 기본 자료형 변수는 저장하고 있는 값을 그 값 자체로 판단하고, 참조 변수는 저정하고 있는 값을 주소로 판단한다.
-> 기본 자료형 변수는 값을 값 자체로 판단한다.
-> 참조 자료형 변수는 값을 주소, 즉 포인터로 판단한다.
-> 기본 자료형 변수를 복사할 때, 참조 자료형 변수를 복사할 때 일어나는 일은 같다.
즉, 가지고 있는 값을 그대로 복사해서 넘겨 준다.