ITEM 61: 박싱된 기본 타입보다는 기본 타입을 사용해라
기본 타입 vs 박싱된 기본 타입
기본 타입은 값만 갖고 있으나, 박싱된 기본 타입은 값 + 식별성(identity) 속성을 갖는다.
Comparator<Integer> naturalOrder = (i, j) -> (i < j) ? -1 : (i == j ? 0 : 1);
System.out.println(naturalOrder.compare(new Integer(42), new Integer(42))); // 1Comparator<Integer> naturalOrder = (iBoxed, jBoxed) -> {
int i = iBoxed;
int j = jBoxed;
return (i < j) ? -1 : (i == j ? 0 : 1);
};기본 타입의 값은 언제나 유효하지만, 박싱된 기본 타입은 유효하지 않은 값 null을 가질 수 있다.
null을 가질 수 있다.Integer i;
if(i == 42) { // NullPointerException
System.out.println("당첨");
}기본 타입이 박싱된 기본 타입보다 시간과 메모리 사용면에서 더 효율적이다.
박싱된 기본타입을 사용해야하는 경우
정리
Last updated