autoboxing,unboxing이란?


autoboxing,unboxing의 개념은 jdk 1.5 부터 나왔다.


자바에는 크게 2가지 데이터 타입이 있다.

primitive Data,Object Data 두가지!


primitive Data

- boolean, char, byte, short, int, long, float, double

- 아주 가벼운 데이터를 말한다.

- 스택메모리에 머물러있다.


Object Data

- 상대적으로 무거운 데이터이다.

- 실제 데이터는 힙메모리에 공유하고 레퍼런스만 스택메모리에 있다.


Wrapper Class

- primitive Data를 ObjectData화 시킨 Class이다.


jdk 1.5 이전에 서로 호환할려면 개발자가 명시적으로 바꿔줬어야했다.

하지만 jdk 1.5가 나오면서 직접호환이 가능하게 되었다.


primitive Data 에서 Wrapper Class로 자동으로 변환되는걸 autoboxing이라 한다.

가벼운 데이터를 무거운데이터에 넣기에 autoboxing이라고 생각하면 간단하다.


Wrapper Class에서 primitive Data 자동으로 변환되는걸 unboxing이라 한다.

무거운 데이터를 가벼운데이터에 넣기에 unboxing이라고 생각하면 간단하다.


autoboxing이란?

- 컴파일러가 primitive Data를 Object Data로 자동변환하는것이다.

- int a = 42; Integer b =a;

- 과거엔 객체를 생성했어야했다.


unboxing이란?

- 컴파일러가 Object Data를 primitiveData로 자동변환하는것이다.

- Integer a = new Integer(42); int b =a;

- 과거엔 a.intValue();로 생성했어야했다.


+ Recent posts