개발자 준비/JAVA

오토박싱 & 언박싱

osul_world 2022. 3. 7. 14:55
728x90

오토박싱 & 언박싱


자바에는 기본 타입과 Wrapper 클래스가 존재한다.

Object를 상속받는 Number를 상속받는다.

 

  • 기본 타입 : int, long, float, double, boolean
  • Wrapper 클래스 : Integer, Long, Float, Double, Boolean

 

 

Wrapper 클래스는 기본타입을 감싸는 클래스로 산술연산이 불가능하다.

그런데 여러 작업을 하다보면 Wrapper 클래스도 산술이 가능한것처럼 보인다.

사실은 자바가 컴파일러가 알아서 박싱과 언박싱 과정을 통해 산술작업을 시행하는것이다.

 

 

박싱 & 언박싱

박싱 : 기본 타입 데이터에 대응하는 Wrapper 클래스로 만드는 동작

언박싱 : Wrapper 클래스에서 기본 타입으로 변환

// 박싱
int i = 10;
Integer num = new Integer(i);

// 언박싱
Integer num = new Integer(10);
int i = num.intValue();

 

img

 

오토 박싱 & 오토 언박싱

JDK 1.5부터는 자바 컴파일러가 박싱과 언박싱이 필요한 상황에 자동으로 처리를 해준다.

// 오토 박싱
int i = 10;
Integer num = i;

// 오토 언박싱
Integer num = new Integer(10);
int i = num;

// 형변환 알아서 해줌
Object ob = i;
Integer it = i; 

 

728x90