들어가며
원시타입의 정의와 코틀린의 원시타입은 자바에서의 원시타입과 어떤 차이가 있는지 알아본다.
원시 타입
먼저 원시 타입이란 정수, 실수, 문자 논리 리터럴등의 실제 데이터 값을 저장하는 타입을 말한다. 자바에서는 원시 타입과 참조 타입으로 나뉘며 참조 타입은 객체의 번지 즉 주소를 저장하여 참조하는 타입으로 메모리 주소 값을 통해 객체를 참조하는 타입이다.
코틀린에서의 원시 타입
코틀린에서는 원시 타입과 래퍼 타입을 따로 구분하지 않는다. 자바에서는 Integer와 Int를 구분해서 사용하는데 코틀린에서는 Int 하나만 존재한다.
그렇다고 코틀린에서 래퍼 타입이 존재하지 않는 것이 아니다. 코틀린의 타입은 컴파일 시 자바의 원시타입 또는 래퍼타입으로 자동으로 변환된다. 예를 들어 Int 타입은 자바의 Int 타입으로 변환되면 Collection과 제네릭스 클래스를 사용하는 경우 래퍼타입으로 변환이 되어 Integer로 들어가게 된다.
nullable type
코틀린에서는 타입 선언이 nullable로 선언할 수 있는데 이때 null이 될 수 있는 타입의 경우에는 자바에서는 표현할 수 없기 떄문에 이때는 자바의 래퍼 타입으로 컴파일이 된다.
코틀린에서의 nullable Int 타입
val age: Int? = null
자바로 변환
Integer age = (Integer)null; 로 표현.
같이 알아두면 좋을 관련 있는 글 추천
'Jave & Kotlin' 카테고리의 다른 글
코틀린 - 코드 실행 시간 측정 measureTimedValue (0) | 2022.11.08 |
---|---|
Java - JAR 파일이란? WAR EAR (1) | 2022.10.28 |
Kotlin - 코틀린의 Unit 타입과 자바의 void 타입 차이 정리 (0) | 2022.08.24 |
Kotlin - 코틀린의 동일성과 동등성 비교 (Java와 차이점) (0) | 2022.07.03 |
Kotlin - first, last 함수 (firstOrNull & lastOrNull) (0) | 2022.06.14 |
댓글