자바의 데이터 타입은 크게 두 가지로 나눌 수 있다. int, double, boolean 같은 기본 타입과 String, List 같은 참조 타입이다. 각각의 기본 타입에는 대응하는 참조 타입이 하나씩 있으며, 이를 박싱된 기본 타입이라고 한다. int, double, boolean에 대응하는 박싱된 기본 타입은 Integer, Double, Boolean 이다.
박싱된 기본 타입에 == 연산자를 사용하면 오류가 일어난다.
기본 타입과 박싱된 기본 타입을 혼용한 연산에서는 박싱된 기본 타입의 박싱이 자동으로 풀린다.
핵심 정리 : 기본 타입과 박싱된 기본 타입 중 하나를 선택해야 한다면 가능하면 기본 타입을 사용하라. 기본 타입은 간단하고 빠르다. 박싱된 기본 타입을 써야 한다면 주의를 기울이자. 오토박싱이 박싱된 기본 타입을 사용할 때의 번거로움을 줄여주지만, 그 위험까지 없애주지는 않는다. 두 박싱된 기본 타입을 == 연산자로 비교한다면 식별성 비교가 이뤄지는데, 이는 여러분이 원한게 아닐 가능성이 크다. 같은 연산에서 기본 타입과 박싱된 기본 타입을 혼용하면 언박싱이 이뤄지며, 언박싱 과정에서 NullPointerException을 던질 수 있다. 마지막으로, 기본 타입을 박싱하는 작업은 필요 없는 객체를 생성하는 부작용을 나을 수 있다.
'이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바] 아이템 60. 정확한 답이 필요하다면 float와 double은 피하라 (0) | 2024.05.28 |
---|---|
[이펙티브 자바] 아이템 59. 라이브러리를 익히고 사용하라 (0) | 2024.05.28 |
[이펙티브 자바] 아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라 (0) | 2024.05.28 |
[이펙티브 자바] 아이템 57. 지역변수의 범위를 최소화하라 (0) | 2024.05.28 |
[이펙티브 자바] 아이템 56. 공개된 API 요소에는 항상 문서화 주석을 작성하라 (0) | 2024.05.21 |