Programing Language/JAVA

AutoBoxing vs UnBoxing

칼쵸쵸 2021. 2. 21. 21:04

JAVA에 타입은 Primitive 데이터과 Object 데이터로 존재

Primitive Data는 가벼울 데이터로 bool, char , float, int 등 stack 메모리로 존재

Object데이터는 무거운 데이터로 Reference만 stack에 존재하고 데이터는 heap에 존재

이 둘을 호환하기 위해서는 개발자가 직접 설정해야 해야 했지만 J2SE 5 부터 자동으로 Boxing, Unboxing 하여 자동으로 변환 가능하도록 변경

 

AutoBoxing

int -> Integer 와 같이 Primitive type을 Object (Wrapped type) 으로 컴파일러가 자동으로 변환시켜서 사용하는것

int a = 5;
Integer b = a;

 

UnBoxing

반대로 Integer -> Int 로 Wrapped Class 를 Primitive type으로 자동 변환

 Integer a = 5;
 int b = a;