용어/java

[국비][JAVA] 오토박싱과 언박싱

줌인. 2024. 6. 4. 22:40
래퍼 클래스는 기본형 값을 객체로 감싸는 역할
ex) 예를 들어, int 기본형 값은 Integer 객체로 래핑
오토박싱 (Autoboxing) 언박싱 (Unboxing)
- 기본형 값을 자동으로 그에 대응하는 래퍼 타입 객체로 변환
  ex) int 값을 Integer 객체로 자동 변환합니다.
- 언박싱은 래퍼 타입 객체를 자동으로 그에 대응하는
  기본형 값으로 변환하는 것
   ex) Integer 객체를 int 값으로 자동 변환합니다.
∴ 래퍼타입에 기본형을 담을 수 있음 ∴ 기본형에 래퍼타입을 담을 수 있음

※ 기본형(primitive type)과 래퍼 타입(wrapper type) 간의 자동 변환

 

 

[기본형에 래퍼 타입을 담기]

Integer wrapperInt = new Integer(10);
int primitiveInt = wrapperInt; // 언박싱

- 언박싱을 통해 래퍼 타입 객체를 기본형 변수에 담을 수 있음

 

[래퍼 타입에 기본형을 담기]

int primitiveInt = 5;
Integer wrapperInt = primitiveInt; // 오토박싱

-오토박싱을 통해 기본형 값을 래퍼 타입 객체에 담을 수 있음

 

[오토박싱과 언박싱을 모두 사용한 예제]

public class AutoboxingUnboxingExample {
    public static void main(String[] args) {
        // 기본형 -> 래퍼 타입 (오토박싱)
        int primitiveInt = 5;
        Integer wrapperInt = primitiveInt; // 오토박싱

        // 래퍼 타입 -> 기본형 (언박싱)
        Integer anotherWrapperInt = new Integer(10);
        int anotherPrimitiveInt = anotherWrapperInt; // 언박싱

        // 오토박싱과 언박싱이 모두 발생하는 예제
        Integer sum = primitiveInt + anotherWrapperInt; // primitiveInt가 오토박싱되고, anotherWrapperInt가 언박싱된 후 덧셈이 수행됨

        System.out.println("primitiveInt: " + primitiveInt);
        System.out.println("wrapperInt: " + wrapperInt);
        System.out.println("anotherWrapperInt: " + anotherWrapperInt);
        System.out.println("anotherPrimitiveInt: " + anotherPrimitiveInt);
        System.out.println("sum: " + sum);
    }
728x90