반응형
자바에는
기본 자료형인 int, double, boolean등이 있고, 객체화된 기본 자료형인 Integer, Double, Boolean등이 있다.
자바 1.5부터 autoboxing과 auto-unboxing이 되면서 두개의 차이를 희미하게 했다.
하지만 이 두가지 자료형의 차이점이 3가지가 있다.
1. 기본자료형은 값만 가지지만 객체화된 기본자료형은 값 이외에 identity을 가진다.
-> 그렇기 때문에 객체화된 기본자료형은 값이 같더라도 서로 다른 identity일 수 있다.
2. 기본 자료형은 완전한 값이지만 객체화된 기본자료형은 null이라는 값이 하나 더 있다.
3. 기본자료형이 시간이나 공간 요구량 측면에서 더욱 효율적이다.
결론은
자동 객체화를 통해 편하게 사용할 수 있지만, 객체화된 기본 자료형을 사용할 때 생길 수 있는 문제들을 없애주진 않는다. 또한 객체화된 기본 자료형과 기본 자료형을 한 표현식 안에 뒤섞으면 비객체화가 자동으로 일어나며, 그 과정에서 NullPointException이 발생할 수 있다.
출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙49인용.
반응형
'JAVA > Effective Java' 카테고리의 다른 글
규칙 51 - 문자열 연결 시 성능에 주의하라 (0) | 2018.05.29 |
---|---|
규칙 50 - 객체화된 기본 자료형 대신 기본 자료형을 이용하라. (0) | 2018.05.29 |
규칙 48 - 정확한 답이 필요하다면 float와 double은 피하라 (0) | 2018.05.29 |
규칙 47어떤 라이브러리가 있는지 파악하고 적절히 활용하라 (0) | 2018.05.29 |
메서드- 규칙 46 for문 보다는 for-each 문을 사용하라 (0) | 2018.05.29 |