Kotlin

코틀린의 자료형 [Do it! 코틀린 프로그래밍]

서퍼리노 2023. 1. 8. 02:01
728x90

코틀린의 자료형은 참조형 자료형을 사용합니다.

 

보통 프로그래밍 언어의 자료형은 기본형 자료형과 참조형 자료형으로 구별합니다.

코틀린은 그중 참조형 자료형을 사용합니다.

기본형 자료형은 무엇이고, 참조형 자료형은 무엇일까요?

 

기본형(Primitive Data Type)

기본형은 가공되지 않은 순수한 자료형을 말하며 프로그래밍 언어에 내장되어 있습니다.

 

참조형(Reference Type)

참조형은 객체를 생성하고 동적 메모리 영역에 데이터를 둔 다음 이것을 참조하는 자료형을 말합니다.

자바에서는 int, long, float, double 등 기본형과 String, Date와 같은 참조형을 모두 사용합니다.

 

하지만 코틀린에서는 참조형만 사용합니다.

참조형으로 선언한 변수는 성능 최적화를 위해 코틀린 컴파일러에서 다시 기본형으로 대체됩니다.

 

따라서 코틀린에서는 참조형을 기본형으로 고려하는 등 최적화를 신경 쓰지 않아도 됩니다

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

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

int a = 24; // 기본형
Car car = new Car(); // 참조형으로  car 객체를 위해 참조 주소를 가진다.

기본형과 참조형이 메모리에 저장되는 방식

기본형으로 선언한 변수 a는 주로 임시 메모리인 스택에 저장되며

값이 저장된 메모리의 크기도 고정되어 있습니다.

 

그림에서는 24가 저장된 부분을 참고하면 된다.

참조형은 스택에 값이 아닌 참조 주소가 있습니다.

 

그러면 참조형의 실제 객체는 어디에 있을까요? 실제 객체는 동적 메모리인 힙에 저장됩니다.

 

자바는 기본형과 참조형을 모두 사용할 수 있습니다.

기본형이 참조형보다 코드 수행 시간이 더 빠릅니다. 

 

그렇다면 참조형만을 사용하는 코틀린은 성능이 낮을까??

그렇지만은 않다. 코틀린은 겉으로는 참조형을 사용하는 것 같지만, 

컴파일 과정을 거치면 참조형이 기본형으로 바뀝니다.

 

코틀린 컴파일럭 자동으로 최적화를 수행하는 것이다.

따라서 코틀린에서는 기본형을 사용해야 할지

참조형을 사용해야 할지 고려할 필요 없이 참조형만 사용하면 됩니다.

728x90