개발자 준비/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();
오토 박싱 & 오토 언박싱
JDK 1.5부터는 자바 컴파일러가 박싱과 언박싱이 필요한 상황에 자동으로 처리를 해준다.
// 오토 박싱
int i = 10;
Integer num = i;
// 오토 언박싱
Integer num = new Integer(10);
int i = num;
// 형변환 알아서 해줌
Object ob = i;
Integer it = i;
728x90