[Java] Call by value 와 Call by Reference

JUNBEOM PARK·2022년 1월 28일
0

🧨 Java

목록 보기
10/33
post-thumbnail

🤔 Call by value , Call by Reference ????

함수의 호출 방식에는 Call by value와 Call by reference가 있다.
말 그대로 '값에 의한 호출'이냐, '참조에 의한 호출'이냐 라고 할 수 있다

Call by Value

예제


public class CallByExam {
	
	public static void change(int num) {
		num += 100;
	}

	
	public static void main(String[] args) {
		int num = 10;
		num = change(num); // call by value
		System.out.println("num = "+ num);
		
	}
}

위 코드의 결과 값은 이렇다

num = 10

왜 110이 아닌 10이 나올까 ?
그 이유는 Call by value는 메서드 호출 시에 사용되는 인자의 메모리에 저장되어 있는 값(value)을 복사하여 보낸다.

Call by Reference

예제


public class CallByExam {
	
	public static void change2(int arr[]) {
		arr[0] += 100;
	}
	
	public static void main(String[] args) {
		
		int arr[] = {10};
		change2(arr); // call by reference
		System.out.println("arr[0] = "+ arr[0]);
	}
}

위 코드의 결과 값은

arr[0] = 110

Call by reference는 메서드 호출 시 사용되는 인자 값의 메모리에 저장되어있는 주소(Address)를 복사하여 보낸다

profile
DB 엔지니어👍

0개의 댓글