AutoBoxing과 UnBoxing은 JAVA 1.5버전에 도입된 개념으로, 원시 타입과 Wrapper Class 타입 간의 형 변환을 일컫는다. 이전에 작성한 원시타입과 참조타입과 관련이 있다.
| 원시 타입 | Wrapper Class |
|---|---|
| boolean | Boolean |
| byte | Byte |
| short | Short |
| int | Integer |
| float | Float |
| long | Long |
| double | Double |
| char | Character |
ArrayList<Integer> al1 = new ArrayList<>();
al1.add(10);
al1.add(20);
al1.add(30);
위 예시의 경우 제네릭 타입으로 Integer가 명시되었지만 add() 메서드의 인자로는 원시 타입인 int형이 전달되었다. 이 경우 원시 타입의 값이 Wrapper Class 타입의 객체로 변환된다.
ArrayList<Integer> al1 = new ArrayList<>();
al1.add(10);
al1.add(20);
al1.add(30);
int val = al1.get(1); // 20
위 예시의 경우 al1는 Integer 타입이 명시되어 있지만 int형 val변수에 할당하며 원시 타입으로 형 변환 된다.