SeouliteLab

[Java/자바] 오토박싱, 언박싱 (Autoboxing, Unboxing) 본문

프로그래밍

[Java/자바] 오토박싱, 언박싱 (Autoboxing, Unboxing)

Seoulite Lab 2024. 3. 8. 09:07

예제 1: 오토박싱(Autoboxing)

int primitiveInt = 10;
Integer wrappedInt = primitiveInt; // Autoboxing

System.out.println("Wrapped Integer: " + wrappedInt);

오토박싱은 기본 자료형을 해당하는 래퍼 클래스로 자동으로 변환하는 것을 의미합니다. 위 예제에서는 `int`형 변수를 `Integer` 래퍼 클래스로 자동으로 변환하여 할당하고 있습니다.

예제 2: 언박싱(Unboxing)

Integer wrappedInt = 20;
int primitiveInt = wrappedInt; // Unboxing

System.out.println("Primitive int: " + primitiveInt);

언박싱은 래퍼 클래스를 해당하는 기본 자료형으로 자동으로 변환하는 것을 의미합니다. 위 예제에서는 `Integer` 래퍼 클래스를 `int`로 자동으로 변환하여 할당하고 있습니다.

예제 3: 오토박싱과 언박싱 함께 사용

int primitiveInt = 30;
Integer wrappedInt = primitiveInt; // Autoboxing

System.out.println("Wrapped Integer: " + wrappedInt);

int unboxedInt = wrappedInt; // Unboxing

System.out.println("Primitive int: " + unboxedInt);

오토박싱과 언박싱은 함께 사용될 수 있습니다. 위 예제에서는 먼저 오토박싱으로 `int`를 `Integer`로 변환하고, 이후 언박싱으로 다시 `Integer`를 `int`로 변환하여 사용하고 있습니다.

예제 4: 컬렉션에서의 오토박싱과 언박싱

List<Integer> integerList = new ArrayList<>();
integerList.add(40); // Autoboxing

int retrievedInt = integerList.get(0); // Unboxing

System.out.println("Retrieved int from list: " + retrievedInt);

컬렉션에서도 오토박싱과 언박싱이 자주 사용됩니다. 위 예제에서는 `ArrayList`에 `int`를 추가할 때 오토박싱이 이루어지고, 컬렉션에서 값을 가져올 때 언박싱이 이루어지고 있습니다.