<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버전 이후로 오토박싱, 오토언박싱을 지원하고있다.