반응형
*함수 호출방식
- Call by value : 값에 의한 호출
Call by value는 메소드 호출 시에 사용되는 인자의 메모리에 저장되어 있는 값을 복사하여 보낸다.
예제를 살펴보자
-예시-
Class CallByValue{
public static void swap(int x, int y) {
int temp = x;
x = y;
y = temp;
}
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("swap() 호출 전 : a = " + a + ", b = " + b);
swap(a, b);
System.out.println("swap() 호출 후 : a = " + a + ", b = " + b);
}
}
-결과-
swap() 호출 전 : a = 10, b = 20
swap() 호출 후 : a = 10, b = 20
- Call by reference : 참조에 의한 호출
메소드 호출 시 사용되는 인자 값의 메모리에 저장되어있는 주소를 복사하여 보낸다.
-예시-
Class CallByReference{
int value;
CallByReference(int value) {
this.value = value;
}
public static void swap(CallByReference x, CallByReference y) {
int temp = x.value;
x.value = y.value;
y.value = temp;
}
public static void main(String[] args) {
CallByReference a = new CallByReference(10);
CallByReference b = new CallByReference(20);
System.out.println("swap() 호출 전 : a = " + a.value + ", b = " + b.value);
swap(a, b);
System.out.println("swap() 호출 전 : a = " + a.value + ", b = " + b.value);
}
}
-결과-
swap() 호출 전 : a = 10, b = 20
swap() 호출 후 : a = 20, b = 10
반응형
'JAVA' 카테고리의 다른 글
JAVA / composite (0) | 2022.08.01 |
---|---|
JAVA / 가비지 컬렉션(garbage collection) (0) | 2020.05.31 |
JAVA / Calendar와 Date 그리고 java.time패키지 (0) | 2020.05.30 |
Java / java.lang패키지 (0) | 2020.05.30 |
JAVA / 예외처리(exception handling) (0) | 2020.05.28 |