기본 타입(byte, char, short, int, long, float, double, boolean)값을 내부에 두고 포장하는 객체를 말한다. 객체로 전환되는 순간, 여러가지 기능 메서드가 지원되기에 데이터 변환이나 기능처리를 할 수 있기 떄문에 객체로 전환하여 사용한다.
Wrapper class(포장 클래스)
대부분은 기본유형타입에서 대문자로 시작하여 선언한다.
ex) byte => Byte, short => Short, double => Double
단, 아래 두가지만 긴 문자 형식으로 Wrapper클래스를 선언한다.
char => Character, int => Integer
Boxing과 Unboxing
1) Boxing : 기본 타입의 값을 포장(Wrapper)객체로 만드는 과정을 말한다.
Integer obj1 = Integer.valueOf(1000);
Byte obj2 = Byte.valueOf(25);
2) Unboxing : 포장 객체에서 기본 타입의 값을 얻어내는 과정
byte value01 = obj2.byteValue();
int value02 = obj1.intValue();
autoBoxing, autoUnboxing
위 기본 박싱과 언박싱을 거치치 않고, 바로 할당하는 것을 jvm에서 내부적으로 지원한다
1) autoBoxing
Integer obj1 = 30;
Double obj2 = 30.25;
2) autoUnboxing
int num01 = obj1;
double num02 = obj2;
// Boxing 처리
Byte obj01 = Byte.valueOf("25");
Integer obj02 = Integer.valueOf(30);
Double obj03 = Double.valueOf("30.8");
// 숫자형 문자열 또는 기본 데이터 유형이 Boxing에 의해 Wrapper클래스로 처리되었다
// autoboxing
// 기본 데이터 유형을 바로 할당할 때, autoboxing이 일어나서 객체로 사용된다.
Integer obj04 = 1000;
Double obj05 = 35.25;
ArrayList<Integer> iList = new ArrayList<Integer>();
iList.add(new Integer(25)); //박싱
iList.add(Integer.valueOf(30)); //박싱
iList.add(50); //오토박싱