[CS] 9) 오토박싱과 오토언박싱

songh·2024년 2월 19일
0

CS지식

목록 보기
10/35
post-thumbnail

자바에는 기본타입과 Wrapper클래스가 있다.
기본타입에는 int, long, float, double, boolean, char, void이 있고, wrapper 클래스에는 Integer, Long, Float, Double, Boolean, Character, Void 등이 있다.

박싱

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

언박싱

Wrapper 클래스에서 기본타입으로 변환하는 동작

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

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

오토박싱과 오토언박싱

JDK 1.5부터는 자바 컴파일러가 박싱과 언박싱이 필요한 상황에서 자동으로 처리를 해준다. 따라서 명시적으로 타입을 지정해주지 않아도 된다. 하지만, 내부적으로 추가연산 작업을 거치게 되므로 오토 박싱과 오토 언박싱이 일어나지 않도록 동일한 타입연산이 이뤄지도록 구현한다.

오토박싱은 변환과정에서 메모리의 동적할당과 기본타입에 대한 객체 초기화가 포함되어 있고, 객체를 명시적으로 생성할 필요가 없다. 이는 래퍼클래스에 값을 할당하기 위해 객체를 생성하여 성능저하를 일으킨다.

0개의 댓글

관련 채용 정보