이름만 거창하지 한 줄로 요약이 가능합니다.
콜바이레퍼런스: 함수에 변수의 주소를 전달하여 변수의 값을 변경
(주소값만 복사하는 것)
public class Main {
public static void changeValue(int[] ref) {
ref[0] = 10;
}
public static void main(String[] args) {
int[] num = {5};
changeValue(num);
System.out.println(num[0]); // 출력 결과: 10
}
}
콜바이밸류 예시에서는 changeValue 메서드에 변수 num을 전달하고 값을 변경해도
원래 변수 num의 값은 변경되지 않습니다.
콜바이밸류: 함수에 값을 전달하여 실행하고 결과를 반환받음
(값까지 복사하는 것)
public class Main {
public static void changeValue(int value) {
value = 10;
}
public static void main(String[] args) {
int num = 5;
changeValue(num);
System.out.println(num); // 출력 결과: 5
}
}
그러나 콜바이레퍼런스 예시에서는 changeValue 메서드에 변수 num의 주소를 전달하여
해당 주소의 값을 변경하므로, 원래 변수 num의 값이 변경됩니다.