아이템 49. 객체화 된 기본 자료형 대신 기본 자료형을 이용하라

49. 객체화 된 기본 자료형 대신 기본 자료형을 이용하라

자바의 자료형

Boxing

자바 1.5 부터 자동 객체화(autoboxing)와 자동 비 객체화(auto-unboxing)가 언어의 일부가 됨.

기본 자료형과 객체화된 기본자료형에는 세가지 큰 차이점이 있음

  1. 기본 자료형은 값만 가지지만 객체화된 기본자료형은 값외에도 신원(identity)을 가짐. 따라서, 객체화된 기본 자료형 객체가 두개 있을 때, 그 값은 같더라도 신원이 다를수 있음
  2. 기본 자료형에 저장되는 값은 전부 기능적으로 완전한 값(fully functional value)이지만, 객체화된 기본 자료형에 저장된 값에는 그외에도 아무 기능도 없는 값(null)이 있다.
  3. 기본 자료형은 시간이나 공간 요구량 측면에서 일반적으로, 객체화된 기본 자료형 보다 효율적임
항목 기본 자료형 객체화된 기본자료형 비고
identity X O 값 or 메모리 참조 값
null X O 객체에만 null가능
성능, 리소스 G B 객체화된 기본 자료형이 상대적으로 나쁨

객체화된 기본 자료형을 사용하는 타당한 용례

  1. 컬렉션의 요소
  2. 제네릭에 사용될때
  3. 리플렉션으로 사용 되기 위해 형인자 자료형(parameterized type)으로 사용될 때(ThreadLocal<int>처럼 사용할 수 없음, ThreadLocal<Integer>으로 사용)

성능상 고려해야 할 점

결론