Java 자바프로그래밍
- 최초 등록일
- 2010.10.18
- 최종 저작일
- 2009.10
- 4페이지/ 한컴오피스
- 가격 1,000원
소개글
값에의한호출
주소에 의한 호출
레퍼런스에 의한 호출
박싱과 언박싱
목차
없음
본문내용
1. 다음을 설명하시오.
1) 매개변수의 전달 방식에 설명하시오.
- 값에 의한 호출(call by value), 참조에 의한 호출(call by reference) 비교
1)call by value
단순히 실매개변수의 값을 형식매개변수에 복사함으로서 구현. 실매개변수의 값은 변화지 않는다. 주로 함수에 값을 전달하고 실매개변수의 값을 원형대로 보존하기 위하여 사용된다.
실매개변수의 값이 피호출함수의 형식매개변수에 복사되기 때문에 값의 참조가 빠르고, 함수의 실행 후에도 실매개변수의 값이 변경되지 않아서 자료의 보호가 가능하다.
반면에 형식매개변수에 대한 기억공간을 별도로 마련해야하기 때문에 기억장소의 소모가 크다. c언어에서는 배열을 call by value의 매개변수로 취할 수가 없다. 배열명은 배열의 시작주소를 나타내는 포인터 이기 때문이다.
2)call by reference (address)
실매개변수의 주소를 형식매개변수에 복사하여 형식매개변수는 전달받은 주소로 실매개변수의 값을 간접적으로 조회하는 기법이다. 형식매개변수 값의 변경은 주소조회로 실매개변수의 값을 변형시키기 때문에 실매개변수의 값이 형식매개변수에 형식매개변수의 값이 실매개변수에 서로 전달되는 효과를 갖는다. 실매개변수는 상수, 수식 또는 함수와 같은 인수가 아니라 반드시 독립된 변수명이어야한다. 상수식이나 함수는 계산된 값을 저장하기 위하여 임시 기억장소를 사용하기 때문이다.c에서는 원칙적으로 call by value만을 허용하지만 포인터를 이용하여 call by reference를 구현할 수는 있다.
call by reference는 주소에 의하여 값을 간접적으로 조회하기 때문에 조회시간이 걸리지만, 방대한 자료의 복사가 이루어지지 않기 때문에 기억공간의 낭비를 줄일 수 있다.
참고 자료
참고 : http://www.cyworld.com/integritian/2690698 (자바캔)