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
반응형
'그 외 ... (정리해야함) > 질문과 답변' 카테고리의 다른 글
LinkedHashMap란 무엇인가? (0) | 2019.05.02 |
---|---|
try-with-resource문은 무엇인가? (0) | 2019.05.02 |
타입의 변화는 제네릭에 어떤 영향을 미치는가? (0) | 2019.05.02 |
인터닝(Interning)이란 무엇인가? (0) | 2019.05.02 |
String 객체의 값을 변경할 수 있는가? (0) | 2019.05.02 |