Call By Value(값 전달)
public static void main(String[] args){
int a = 10;
int b = 20;
sum = add(a, b);
}
public int add(int a, int b){
int sum = a + b;
return sum;
}
Call By Value는 메서드에 값을 전달할 때, 변수의 값을 전달하는 방식이다. 메서드 내에서 해당 값을 변경해도 호출한 곳의 변수 값에는 영향을 미치지 않는다.
Call By Reference(번지 전달)
public static void main(String[] args){
int[] a = {1, 2, 3, 4, 5};
sum = add(a);
}
public int add(int[] a){
int sum = 0;
for(int i = 0; i < a.length; i++){
sum += a[i];
}
return sum;
}
Call By Reference는 메서드에 참조값(주소)을 전달하는 방식이다. 메서드 내에서 참조된 객체나 배열의 값을 변경하면, 호출한 곳의 값도 변경된다.
- 참조값에 있는 값이 무엇인지 확인할 필요가 있다.