Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

SSinsa

4. 오토박싱과 언박싱 이해하기 본문

Java/Java Programming

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

SSinsa 2020. 2. 5. 00:45

(시작하기 전에 '이것이 자바다'를 통해 'Wrapper 클래스'를 공부하였다 - 출처 이것이 자바다 1권)

# 박싱과 언박싱

Boxing - 기본 타입의 값을 포장 객체로 만드는 과정

    ->방법 : Integer obj = Integer.valueOf(1000); //기본타입의 값

                Integer obj = Integer.valueOf("1000"); //문자열

Unboxing - 포장 객체에서 기본 타입의 값을 얻어내는 과정

    ->방법 : 기본타입명 + Value()

 

 

# 자동박싱과 언박싱

자동박싱 - 포장클래스 타입에 기본값이 대입될 경우에 발생

자동언박싱 - 기본타입에 포장객체가 대입될 경우에 발생

 

그렇다면 이제 질문으로 들어가서~

 

NullPointerException 이 발생했을 때 원시 타입에 접근할 수 있는가?

위의 코드를 보면 

try 첫줄에 final int newIntValue = methodWhichMayReturnNull (intObject); 에서

intObject 의 1이라는 값이 담긴다. 이때 1은 Integer 타입으로 

newIntValue 가 int이기에 타입 충돌이 있다.

하지만, 자동으로 언박싱이 되면서 1이 정상적으로 출력된다

 

return 타입이 null일 때도 자동으로 int로 언박싱되지만

null 값이 반환되었기 때문에 NPE가 발생한다. (why? 원시타입에는 null값을 할당할 수 없다)

 

따라서, 위 질문의 답은 "NO"

'Java > Java Programming' 카테고리의 다른 글

9. JUnit으로 테스팅하기  (0) 2020.02.18
5. 어노테이션 이용하기  (0) 2020.02.05
3. 제네릭 이해하기  (0) 2020.01.15
2. String 이용하기  (0) 2020.01.15
1. 배열과 리스트의 관계  (0) 2020.01.15