그 외 ... (정리해야함)/질문과 답변

오토박싱과 언박싱 이해하기

깡냉쓰 2019. 5. 2. 21:07
728x90
반응형
final Integer intObject = 42;

자바5 이전에는 위의 코드를 컴파일러가 에러로 인지했다.
하지만 자바5버전에서는 컴파일러가 오토박싱(Autoboxing)이라는 기능을 사용해 int와 같은 참조타입은 Integer타입 값이라는 것을 알기 때문에 오류가 나지 않는다.
자바5 이전에는 new Integer(42); 또는 Integer.valueOf(42);를 사용했어야 했다.
(Integer.valueOf()가 더 효율적인데 이유는 상수풀에 캐시를 하고 있기 때문이다.)


그렇다면 오토박싱(Autoboxing)의 반대말인 언박싱(Unboxing)이란 무엇일까?
Float, Integer, Boolean 같은 박스된 참조타입을 원시타입인 float, int, boolean 타입으로 변경하는 것을 말한다.
만약, Integer값이 null인데 int에 할당한다면 NullPointerException이 발생한다.

728x90
반응형