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
'개발 일지 > JAVA' 카테고리의 다른 글
정규 표현식 (0) | 2022.11.09 |
---|---|
[JAVA 더 깊게] 자바의 해쉬(feat. equals 재정의) (0) | 2022.03.23 |
[JAVA 더 깊게] Stream(feat. 함수형 인터페이스 & Comparator) (0) | 2022.03.07 |
[JAVA 더 깊게] 자바의 정렬기준 Comparator & Comparable (feat. 함수형 인터페이스) (0) | 2022.03.04 |
JVM 메모리 구조 (0) | 2022.03.04 |