용어/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