[JAVA] 메서드 인자 전달 방식(Call by Value / Call by Reference)

인자 전달은 메서드에 데이터를 전달하는 과정을 의미합니다. 메서드가 수행하는 작업을 위해 필요한 데이터를 전달하기 위해 사용됩니다. 이때 전달되는 데이터를 매개변수(Parameter)라고 하며, 메서드 정의에 매개변수의 타입과 이름이 명시됩니다.

 

메서드 인자 전달 방식

  1. 값에 의한 전달 (Call by Value) : 값에 의한 전달은 메서드 호출 시에 인자로 전달되는 데이터의 복사본이 메서드의 매개변수로 전달되는 방식입니다. 즉, 메서드 내에서 매개변수 값을 변경해도 원본 데이터는 변하지 않습니다. 기본 데이터 타입을 인자로 전달할 때 적용됩니다.
  2. 참조에 의한 전달 (Call by Reference) : 참조에 의한 전달은 메서드 호출 시에 데이터의 참조(메모리 주소)가 메서드의 매개변수로 전달되는 방식입니다. 이 경우 메서드 내에서 매개변수를 통해 원본 데이터를 수정할 수 있습니다.

값에 의한 전달 (Call by Value) 예제

public class Example {
    public static void main(String[] args) {
        int num = 5;
        modifyValue(num);
        System.out.println("num: " + num); // 출력: num: 5
    }

    public static void modifyValue(int value) {
        value = 10;
    }
}

참조에 의한 전달 (Call by Reference) 예제

public class Example {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        modifyArray(arr);
        System.out.println("arr[0]: " + arr[0]); // 출력: arr[0]: 100
    }

    public static void modifyArray(int[] array) {
        array[0] = 100;
    }
}