기본 타입과 박싱된 기본 타입 중 하나를 선택해야 한다면 가능하면 기본 타입을 사용하자.
기본 타입은 간단하고 빠르다.
- 값만 가지고 있다.
- 값은 유효 하다.
- 박싱된 기본타입보다 시간과 메모리 사용율에서 더 효율적이다.
- 값에 더해서 식별성(identity)이란 속성을 가진다.
- 값은 같아도 서로 다르게 인식할수있다.
- 유효하지 않은 값을 가질수 있다.
- null을 가질수 있다.
- 두 박싱된 기본 타입을 == 연산자로 비교한다면 동일성 비교를 하게 된다.
- 같은 연산에서 기본 타입과 박싱된 기본 타입을 혼용하면 언박싱이 이뤄지며, 언박싱 과정에서 NullPointerException을 던질 수 있다.
- 기본 타입을 박싱하는 작업은 필요 없는 객체를 생성하는 부작용을 나을 수 있다.
- 컬렉션의 원소, 키값으로 쓴다.
- 컬렉션은 기본 타입을 가질수 없으므로 어쩔수 없이 박싱된 기본 타입을 써야 된다.
- 매개변수화 타입이나 매개변수화 매서드의 타입 매개변수로는 박싱된 기본타입을 써야 된다.