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