Call By Value
- 기본 자료형 변수를 복사하는 경우 Call By Value에 의해 값이 복사되어
서로에게 영향을 주지 않음
- 값 자체를 단순히 복사
// Call By Value ex)
public class CallByValue {
public static void main(String [] args) {
int a = 10;
int b = a; // call by value
b = 20; // 값을 변경해도 변수 a에 영향x
}
}

Call By Reference(Address)
- Call By Value와 본질적인 차이는 없지만 저장하고 있는 값을 주소로
해석해서 주소를 복사
- 주소값을 복사
// Call By Reference ex)
class Animal {
public int age;
}
public class CallByReference {
public static void main(String[] args) {
Animal ref_a = new Animal();
Animal ref_b = ref_a; // call by reference
/* 값을 변경시 같은 객체를 참조하고 있기에
서로 변수에 영향을 미친다. */
ref_a.age = 10;
ref_b.age = 20;
System.out.println(ref_a.age); // 20
System.out.println(ref_b.age); // 20
}
}

Leave a comment