자바는 메서드 호출 시 값을 복사하여 전달하는 "값에 의한 호출" 방식을 사용한다. 따라서, 두 변수의 값을 서로 바꾸기 위해서는 원본 값을 직접 수령할 수 있어야 한다. 하지만 값에 의한 호출에서는 메서드 내부에서 변경된 값이 메서드 호출 후에는 반영되지 않는다.
public class SwapExample {
public static void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
public static void main(String[] args) {
int x = 1;
int y = 2;
swap(x, y);
System.out.println("x= " + x + ", y= " + y);
// 출력: x: 1, y: 2
}
}