묠니르묘묘
꾸준히 성장하는 개발자스토리
묠니르묘묘
전체 방문자
오늘
어제
  • 분류 전체보기 (188)
    • 프로그래밍 (48)
      • 디자인패턴 (4)
      • 예외,에러 (4)
      • Java (29)
      • Kotlin (3)
      • React.js (4)
      • JavaScript (2)
      • Apache Kafka (2)
    • Spring (49)
      • Spring (21)
      • Spring Cloud (3)
      • JPA (25)
    • 코딩테스트 (31)
      • 알고리즘 (5)
      • Java - 백준 (26)
      • Java - 프로그래머스 (0)
    • AWS (7)
    • 데이터베이스 (6)
    • 개발 etc (23)
    • 도서 (5)
    • 회고록 (4)
    • 데브코스-데이터엔지니어링 (15)

인기 글

최근 글

hELLO · Designed By 정상우.
묠니르묘묘

꾸준히 성장하는 개발자스토리

Java 언박싱 형변환
프로그래밍/Java

Java 언박싱 형변환

2022. 1. 14. 10:20

Java의 언박싱(unboxing) 형변환

Java 8 Language Specification 5.1.8 Unboxing Conversion

 

Chapter 5. Conversions and Contexts

class Point { int x, y; } interface Colorable { void setColor(int color); } class ColoredPoint extends Point implements Colorable { int color; public void setColor(int color) { this.color = color; } } final class EndPoint extends Point {} class Test { publ

docs.oracle.com

언박싱(unboxing)은 래퍼 클래스(wrapper class)를 기본형 타입(primitive)로 바꾸는 과정이다.

박싱(boxing)은 기본형 타입을 래퍼 클래스로 만드는 과정이다.

 

 

💻 Java 8 공식문서에 따르면 언박싱 형변환은 다음 8가지 경우가 있다.

참조형 타입(reference type)을 기본형 타입(primitive type)으로 바꾼다.

좀 더 정확하게 말하자면 래퍼 클래스(wrapper class)를 기본형 타입(primitive type)으로 바꾼다.

 

 

 

💻 번역해서 간단하게 보자면 다음 경우와 같다.

  • Boolean -> boolean
  • Byte -> byte
  • Short -> short
  • Character -> char
  • Integer -> int
  • Long -> long
  • Float -> float
  • Double -> double

 

 

💻 런타임시 언박싱 형변환은 다음과 같이 진행된다.

 

 

💻 위 내용을 번역해보자.

  • 만약  r 이 참조 타입인  Boolean 인 경우, 언박싱 형변환이  r 을  r.booleanValue() 로 바꾼다.
  • 만약  r 이 참조 타입인  Byte 인 경우, 언박싱 형변환이  r 을  r.byteValue() 로 바꾼다.
  • 만약  r 이 참조 타입인  Character 인 경우, 언박싱 형변환이  r 을  r.charValue() 로 바꾼다.
  • 만약  r 이 참조 타입인  Short 인 경우, 언박싱 형변환이  r 을  r.shortValue() 로 바꾼다.
  • 만약  r 이 참조 타입인  Integer 인 경우, 언박싱 형변환이  r 을  r.intValue() 로 바꾼다.
  • 만약  r 이 참조 타입인  Long 인 경우, 언박싱 형변환이  r 을  r.longValue() 로 바꾼다.
  • 만약  r 이 참조 타입인  Float 인 경우, 언박싱 형변환이  r 을  r.floatValue() 로 바꾼다.
  • 만약  r 이 참조 타입인  Double 인 경우, 언박싱 형변환이  r 을  r.doubleValue() 로 바꾼다.
  • 만약  r 이  null 인 경우, 언박싱 형변환은  NullPointerException 을 던진다.

 

저작자표시 (새창열림)

'프로그래밍 > Java' 카테고리의 다른 글

valueOf() 와 parseInt() 의 차이점  (0) 2022.01.21
컬렉션 프레임워크(Collections Framework)  (0) 2022.01.19
함수형 인터페이스(Functional Interface)란 무엇인가?  (0) 2022.01.13
람다식이란?  (0) 2022.01.12
JAVA 8은 왜 이렇게 많이 쓸까?  (1) 2022.01.12
    '프로그래밍/Java' 카테고리의 다른 글
    • valueOf() 와 parseInt() 의 차이점
    • 컬렉션 프레임워크(Collections Framework)
    • 함수형 인터페이스(Functional Interface)란 무엇인가?
    • 람다식이란?
    묠니르묘묘
    묠니르묘묘

    티스토리툴바