최대 1 분 소요

기본형과 참조형의 동작 원리

다음은 자바에서 사용된 기본형과 참조형으로 선언한 변수의 코드 일부이다.

int a = 77; // 기본형
Person person = new Person(); // 참조형. Person 객체의 참조 주소(A12)를 가진다.

primitive-and-reference

기본형으로 선언한 변수 a는 임시 메모리인 스택에 저장되며 값이 저장된 메모리의 크기도 고정되어 있음.(그림에서 77이 저장된 부분 참고)

참조형은 스택에 값이 아닌 참조 주소가 있음.(그림에서 A12가 저장된 부분을 참고)

참조형의 실제 객체는 동적 메모리인 힙에 저장됨.(그림에서 화살표가 가리키는 도형을 참고)


[ 요약 ]
기본형: 실제 값을 저장 (스택에)
참조형: 어떤 값이 저장되어 있는 메모리 주소를 값으로 저장 (스택에)
참조형 변수는 힙(heap)에 실제 값(객체)를 저장하고 해당 주소를 스택에 저장하여 사용.

자바는 기본형과 참조형 모두 사용 가능. 기본형이 참조형보다 코드 수행 시간이 더 빠름. 코틀린은 컴파일 과정을 거치면서 참조형이 기본형으로 바뀐다. 코틀린 컴파일러가 자동으로 최적화를 수행하는 것이다. 그래서 코틀린에서는 기본형을 사용할지 참조형을 사용할지 고려할 필요가 없다.





참고 : Do it! 코틀린 프로그래밍

태그:

카테고리:

업데이트: