객체 지향 개념에서는 모든 것이 객체로 다루어져야 하지만 자바에서는 8개의 기본형을 객체로 다루지 않는다. 그 대신 보다 높은 성능을 얻을 수 있다.
때로는 기본형 변수도 어쩔 수 없이 객체로 다뤄야 하는 경우가 있다. 객체로 매개변수를 받거나 비교하거나 저장해야 할 때 종종 그런 경우가 발생하는데, 이 때 사용되는 것이 래퍼 클래스 이다. 8개의 기본형을 대표하는 8개의 래퍼클래스가 있는데, 이 클래스들을 이용하면 기본형 값을 객체로 다루기 편리하다.
public final calss Integer extends Number implemnts Comparable {
...
private value;
...
}
위 클래스는 정수형 래퍼 클래스이고 이와 같이 래퍼 클래스들은 객체생성 시에 생성자의 인자로 주어진 각 자료형에 알맞은 값을 내부적으로 저장하며, 이에 맞는 여러 메서드가 정의돼 있다.
모든 래퍼 클래스의 equals()메서드는 오버라이딩이 되어 있기에 객체의 value값을 비교한다.
하지만 여전히 비교연산쟈(==)는 사용할 수 없기 때문에 compareTo()메서드를 제공한다.
또한 toString()으로 객체가 가지고 있는 value를 문자열로 바꾸어 반환한다
이 외에도 래퍼클래스 들은 MAX_VALUE, MIN_VALUE, SIZE, BYTES, TYPE등의 static상수를 가지고 있기에 코딩하다 찾아볼 필요 없이 해당 클래스를 들어 가 보면 알 수 있다.