기본형의 한계

<aside> 💡

자바는 기본적으로 객체지향언어이다. 하지만 자바 안에 객체가 아닌 것이 있는데 바로 기본형타입이다.(int, double 등등)

</aside>

래퍼클래스

<aside> 💡

위 문제를 해결하기 위해서 나온 개념이 바로 래퍼클래스이다. 래퍼클래스는 기본형타입으로 클래스를 만든다고 보면 되는데, 마치 기본형타입을 클래스로 감싸서 만드는 것 처럼 보이기 때문에 (wrap) 래퍼클래스라고 한다.

</aside>

사용 예제

int num = 10;
Integer obj = Integer.valueOf(num);  // 박싱(Boxing)
System.out.println(obj);  // 출력: 10
Integer obj2 = 20;

Integer.valueOf(20)을 자동으로 수행해서 오토박싱을 해준다.

Integer obj = Integer.valueOf(30);
int num = obj.intValue();  // 언박싱(Unboxing)
System.out.println(num);  // 출력: 30
int num2 = obj;

obj.intValue()를 자동으로 수행해서 오토언박싱을 해준다.

원래는 Integer.valueOf(20)을 사용해서 박싱을 해줘야 하는데, 매번 명시하면서 수행하기 번거로워서 자바 5버전 이후로 오토박싱, 오토언박싱을 지원하고있다.

결론