본문 바로가기
Jave & Kotlin

Kotlin - 코틀린에서의 Primitive Type (원시타입)

by devLog by Ronnie's 2022. 8. 27.

들어가며


원시타입의 정의와 코틀린의 원시타입은 자바에서의 원시타입과 어떤 차이가 있는지 알아본다.

 

 

원시 타입


먼저 원시 타입이란 정수, 실수, 문자 논리 리터럴등의 실제 데이터 값을 저장하는 타입을 말한다. 자바에서는 원시 타입과 참조 타입으로 나뉘며 참조 타입은 객체의 번지 즉 주소를 저장하여 참조하는 타입으로 메모리 주소 값을 통해 객체를 참조하는 타입이다.

 

 

코틀린에서의 원시 타입


코틀린에서는 원시 타입과 래퍼 타입을 따로 구분하지 않는다. 자바에서는 Integer와 Int를 구분해서 사용하는데 코틀린에서는 Int 하나만 존재한다.

 

그렇다고 코틀린에서 래퍼 타입이 존재하지 않는 것이 아니다. 코틀린의 타입은 컴파일 시 자바의 원시타입 또는 래퍼타입으로 자동으로 변환된다. 예를 들어 Int 타입은 자바의 Int 타입으로 변환되면 Collection과 제네릭스 클래스를 사용하는 경우 래퍼타입으로 변환이 되어 Integer로 들어가게 된다.

 

 

nullable type


코틀린에서는 타입 선언이 nullable로 선언할 수 있는데 이때 null이 될 수 있는 타입의 경우에는 자바에서는 표현할 수 없기 떄문에 이때는 자바의 래퍼 타입으로 컴파일이 된다.

 

코틀린에서의 nullable Int 타입

val age: Int? = null

자바로 변환

Integer age = (Integer)null; 표현.

 

 

같이 알아두면 좋을 관련 있는 글 추천 


 

 

Kotlin - 코틀린의 Unit 타입과 자바의 void 타입 차이 정리

들어가며 자바에서 사용하였던 void와 코틀린에서의 Unit의 차이점을 알아보고 추가적으로 Nothing에 대해서도 정리한다. void와 Void 자바의 void는 알다시피 반환 타입이 없을 때 사용한다. 우리가 잘

sjparkk-dev1og.tistory.com

 

댓글