본문 바로가기

코틀린

primitive wrapper

반응형

변수는 타입이 있으며 타입에 따라 기본형(primitive)과 참조형(refrence) 2가지로 나눌 수 있다.

기본형은 실제 data를 저장하고 참조형은 아래와 같이 data값이 저장되어 있는 주소를 값으로 가지고 이를 wrapper 클래스라고 부른다.

 

public final class Integer extends Number implements Comparable {
	...
    private int value;
    ...
}

 

기본형과 참조형

기본형(primitive) 참조형(wrapper)
boolean Boolean
char Char
byte Byte
short Short
int Integer
long Long
folat Float
double Double

 

코틀린은 기본형과 참조형 타입을 따로 구분하지 않고 통일 하여 사용한다. 

ex) int, Integer -> Int

이럴경우 비효율적이라 생각할 수 있지만 컴파일시 원시타입과 참조형 타입으로 분리된다.

 

배열에서 기본형과 wrapper클래스를 사용하기 위해서는 아래와 같이 사용한다.

val arr = IntArray(3)
val arr2 = arrayOfNulls<Int>(3)

디컴파일을 해보면 아래와 같다.

int[] arr = new int[3];
Integer[] arr2 = new Integer[3];

반응형