JAVA/Effective Java

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

반응형

자바에는
기본 자료형인 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인용.

반응형