자바
일반변수와 레퍼런스 변수
열곰탱
2022. 8. 21. 18:59
일반변수 - 크기가 정해져 있는 것(컴파일 시점)
레퍼런스 변수 - 크기가 정해져 있지 않는 것(컴파일 시점)
int num =10; // 일반변수
MyData d; // 레퍼런스 변수
기본 타입 일반변수 num은 10이라는 크기가 정해져있지만 레퍼런스 변수인 d는 크기를 알수없다.
Mydata는 참조 자료형중 하나인 클래스에서 사용자가 임의로 만든 커스텀 타입이다.
커스텀 타입은 처음에는 크기를 알수없다.
(컴파일 될때 크기를 알 수없고, 프로그램이 실행(Runtime)되면 그때서야 크기를 알 수 있다.
일반변수는 값을 가지고 있다.
레퍼런스 변수는 주소를 가지고 있다.
그이유는 ?
일반 변수는 컴파일 되었을때 크기를 알 수 있지만 참조 변수는 컴파일 되었을때 크기를 알 수 있기 때문이다.
개인정리
아래그림을 보면
기본타입의 일반변수 num은 stack 영역에 10이라는 값을 가지고 있고
참조타입의 참조변수 md는 stack영역에 주소값을 가지고 있고 heap 영역에 해당 주소값 및 실제 값을 가진다.