Skip to content

Latest commit

 

History

History
26 lines (20 loc) · 1.39 KB

item61.md

File metadata and controls

26 lines (20 loc) · 1.39 KB

item 61. 박싱된 기본 타입보다는 기본 타입을 사용하라

기본 타입과 박싱된 기본 타입 중 하나를 선택해야 한다면 가능하면 기본 타입을 사용하자.

기본 타입은 간단하고 빠르다.

기본타입

  • 값만 가지고 있다.
  • 값은 유효 하다.
  • 박싱된 기본타입보다 시간과 메모리 사용율에서 더 효율적이다.

박싱된 기본타입

  • 값에 더해서 식별성(identity)이란 속성을 가진다.
    • 값은 같아도 서로 다르게 인식할수있다.
  • 유효하지 않은 값을 가질수 있다.
    • null을 가질수 있다.

박싱된 기본 타입을 써야 한다면 주의를 기울이자.

  • 두 박싱된 기본 타입을 == 연산자로 비교한다면 동일성 비교를 하게 된다.
  • 같은 연산에서 기본 타입과 박싱된 기본 타입을 혼용하면 언박싱이 이뤄지며, 언박싱 과정에서 NullPointerException을 던질 수 있다.
  • 기본 타입을 박싱하는 작업은 필요 없는 객체를 생성하는 부작용을 나을 수 있다.

박싱된 기본 타입을 언제 써야 되나?

  • 컬렉션의 원소, 키값으로 쓴다.
  • 컬렉션은 기본 타입을 가질수 없으므로 어쩔수 없이 박싱된 기본 타입을 써야 된다.
  • 매개변수화 타입이나 매개변수화 매서드의 타입 매개변수로는 박싱된 기본타입을 써야 된다.