Leeyebin의 블로그
Call by Value vs Call by Reference 본문
Call By Value : 값에 의한 전달
- 기본 자료형은 저장하고 있는 값이 전달(복사) 된다.
- 대입문 사용시 / 인자 전달 시 / 메서드 리턴 시
Call By Reference : 참조/주소에 의한 전달
- 객체참조변수에 주소값을 대입하여 힙 영역에 존재하는 객체 참조
- 포인터
public class CallTest {
//자바에서 reference type : 배열, class, interface
public static void main(String[] args) {
int x=3, y=4;
int[] a={3}, b={4};
CallTest test = new CallTest();
test.changeVal(x, y);
System.out.println(x + " " + y);
test.changeRef(a, b);
System.out.println(a[0] + " " + b[0]);
}
public void changeVal(int a, int b){//파라미터 타입이 primitive data type이면 call by value
int temp = a;
a = b;
b = temp;
}
public void changeRef(int[] a, int[] b){//파라미터 타입이 reference data type이면 call by reference 방식으로 수행
int temp = a[0];
a[0] = b[0];
b[0] = temp;
}
}
'프로그래밍 > 깜빡하는 것들' 카테고리의 다른 글
| [JAVA]추상클래스 vs 인터페이스 (0) | 2017.04.13 |
|---|---|
| java vs javascript (0) | 2017.02.12 |
| overloading vs overriding (0) | 2017.02.12 |
Comments