Java/Java: 문법 정리
[Java]Call by Value와 Call by Reference 정리
데브마우스
2023. 10. 17. 21:47
Call by Value란 무엇인가요?
Call by Value란 변수에 값을 대입할 때 일반 변수를 저장합니다.
정수형(int), 실수형(float), 문자형(char), 논리형(boolean) 데이터 타입의 변수는 값을 저장합니다. 그렇기에 아래처럼 변수를 선언하고 초기화할 경우 변수의 값을 담는 메모리에는 일반 데이터 값이 저장되어 있습니다.
int a = 3;
char b = 'b'
boolean c = true;
float d = 1.23f;
Call by Reference란 무엇인가요?
Call by Reference란 위의 Call by Value와 다르게 변수에 값을 저장하는 게 아닌, 참조변수로써 데이터가 저장되어 있는 주소 값을 저장합니다.
Call by Reference에 해당되는 데이터 타입은 String, 클래스 데이터 타입이 있습니다.
Call by Reference 변수를 선언하면 아래 과정에 따라 변수가 초기화됩니다.
- new 연산자에 의해 인스턴스가 메모리의 빈 공간에 생성됩니다.
- 대입 연산자(=)에 의해 인스턴스가 저장된 메모리의 주소 값이 참조변수에 저장됩니다.
그리하여 참조변수에 있는 주소 값을 통해서 그 메모리에 있는 해당 주소로 접근할 수 있습니다.