Wrapper 클래스 개념
- 사실 이름이 Wrapper인 클래스는 존재하지 않는다.
- 다만 8개의 기본 타입을 객체로 다루기 위해 밑의 표와 같은 8개의 클래스를 통칭하여 Wrapper 클래스라고 한다.
- 기본 타입과 Wrapper 클래스
기본 타입 | byte | short | int | long | char | float | double | boolean |
---|
Wrapper 클래스 | Byte | Short | Integer | Long | Character | Float | Double | Boolean |
Wrapper 클래스의 객체 생성
Integer i = Integer.valueOf(10);
Character c = Character.valueOf('c');
Boolean b = Boolean.valueOf(true);
박싱(boxing)과 언박싱(unboxing)
- 언박싱: 기본 타입 값 → Wrapper 객체로 변환
- 박싱: Wrapper → 기보 타입 값
Integer ten = Integer.valueOf(10);
int n = ten.intValue();
Integer ten = 10;
int n = ten;
사용하는 이유
- 기본 데이터 타입을 Object로 변환할 수 있다.
- java.util 패키지의 클래스는 객체만 처리하므로 Wrapper class는 이 경우에도 도움이 된다.
- ArrayList 등과 같은 Collection Framework의 데이터 구조는 기본 타입이 아닌 객체만 저장하게 되고, Wrapper class를 사용하여 자동박싱/언박싱이 일어난다.
- 멀티스레딩에서 동기화를 지원하려면 객체가 필요하다.