Call by value (값에 의한 호출)
- 함수가 호출 될 때, 메모리 공간 안에 함수를 위한 별도의 임시공간이 생기는 데 이를 스택 프레임(Stack Frame)이라고 한다. 해당 공간은 함수가 종료되면 사라진다. (공통점)
- 이 호출 방식은 함수 호출시 전달되는 인자 값을 복사 하여 함수의 매개변수로 전달 (그 값 주소가 전달되는게 아님)
- 복사된 매개변수는 함수 안에서 로컬 변수로 사용되며 이 변화는 외부 변수에 영향을 미치지 못한다.
- 복사하여 처리하기 때문에 기본 값이 보존되어 안전하다. 다만 복사하는 만큼 메모리 사용량이 늘어난다.
Call by Reference (참조에 의한 호출)
- 함수가 호출 될 때, 메모리 공간 안에 함수를 위한 별도의 임시공간이 생기는 데 이를 스택 프레임(Stack Frame)이라고 한다. 해당 공간은 함수가 종료되면 사라진다. (공통점)
- 이 호출 방식은 함수 호출시 전달되는 변수의 레퍼런스를 전달하기 때문에 함수 안에서 매개변수 값이 변경되면 전달된 인자의 원본 값도 함께 변경된다.
- 복사하지 않고 직접 참조하기 때문에 빠르다. 하지만 원래 값은 보존하지 못한다.
강의노트 12. 함수 호출방식(call-by-value, call-by-reference, call-by-assignment) · 초보몽키의 개발공부로그
패스트캠퍼스 컴퓨터공학 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
wayhome25.github.io
Java 의 Call by Value, Call by Reference
Overview Java 에서 메서드를 호출 시 파라미터를 전달하는 방법에 대해 알아봅니다. 순서는 다음과 같이 진행합니다. Call by Value, Call by Reference 차이 Java 에서의 파라미터 전달 방법 JVM 메모리에 변
bcp0109.tistory.com
자바 경우, 함수에 전달되는 인자의 데이터 타입(기본타입형, 참조자료형)에 따라서 메서드도 호출 방식이 달라진다.기본 자료형 (primitive type) : call by value로 동작참조 자료형 (reference type) : call by reference로 동작
발표를 준비하면서 이런 부분도 있었는데 아래 글보고 자바는 call by reference가 없다는 게 맞다는 생각이 들었다.
결국 참조 자료형도 주소값을 복사하여 새로운 변수로 사용하는 거라...
[Java] Java는 Call by reference가 없다
Call by Value와 Call By Reference가 뭘까? 프로그래밍을 하다 보면 꼭 알고 넘어가야 하는 개념이 있습니다. 바로 Call By Value, Reference입니다. 어떤 언어를 공부하든 나오는 개념이기도 합니다. Call by value
deveric.tistory.com
'Computer Science > Basic' 카테고리의 다른 글
| SOLID 원칙 (0) | 2023.02.22 |
|---|---|
| 테스트 코드 란? (0) | 2022.12.10 |
| 컴퓨터 과학 CS - C 기초 (2) | 2022.10.23 |
| 콘솔(Console), 터미널(Terminal), 쉘(Shell), 프롬프트(Prompt) (0) | 2022.10.23 |
| 컴퓨터 과학 CS - 스크래치 (0) | 2022.10.20 |
