Wrapper Class
객체지향적 개념의 관점으로 보면 모든 것은 객체로 다루어져야한다. 그러나 자바의 기본형 8개의 타입은 객체로 다루지 않는다. 이러한 이유는 보다 높은 성능을 얻기 위해서이다.
하지만 자바에서도 기본형들을 객체로 다루어야하는 경우가 있다. 이때를 위한 만들어둔것이 래퍼 클래스이다.
래퍼클래스의 equals
래퍼 클래스들은 equals()가 모두 오버라이딩되어 있어서 주소값이 아닌 객체가 가지고 있는 값을 비교한다. 그리고 toString()도 오버라이딩되어 있어서 객체가 가지고 있는 값을 문자열로 변환하여 반환한다.
Number 클래스
추상클래스로 내부적으로 숫자를 멤버변수로 갖는 래퍼 클래스들의 조상이다.
오토박싱과 언박싱
JDK 1.5이전에는 기본형과 참조형 간의 연산이 불가능 했기 때문에 래퍼클래스로 기본형을 객체로 만들어서 연산해야 했다. 그러나 이제는 기본형과 참조형 간의 덧셈이 가능하다. 자바 언어의 규칙은 그대로이지만 컴파일러 내부에서 자동으로 변환하여서 연산을 하기 때문이다.
기본형 값을 래퍼 클래스로 자동 변환해주는 것을 오토박싱이라 하고 반대로 변환하는 것을 언박싱이라고 한다.