19. JAVA의 Wrapper 클래스, 박싱(Boxing), 언박싱(UnBoxing)
Wrapper Class 란 원시 자료형들의 클래스 타입입니다.
Wrapper 클래스를 사용하는 이유가 무엇일까요?
▶ 원시타입(일반타입)을 박싱하면 다양한 메소드를 제공받을 수 있습니다.
▶ 반드시 객체로 사용해야 할 때에는 박싱을 해주어야 합니다.
래퍼 클래스는 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어 줍니다.
이러한 래퍼 클래스는 모두 java.lang 패키지에 포함되어 제공됩니다.
자바의 원시 타입에 대응하여 제공하고 있는 래퍼 클래스는 다음과 같습니다.
박싱(Boxing)과 언박싱(UnBoxing)
박싱(Boxing)은 원시타입(기본타입)을 래퍼 클래스의 인스턴스로 변환하는 과정을 박싱(Boxing)이라고 합니다.
래퍼 클래스의 인스턴스에 저장된 값을 다시 원시타입의 데이터로 꺼내는 과정을 언박싱(UnBoxing)이라고 합니다.
박싱과 언박싱의 문법은 다음과 같습니다.
클래스 타입 객체 = new 클래스 타입(일반 타입); //boxing
일반 타입 변수 = 객체.000Value(); //unboxing
오토 박싱(auto boxing) 과 오토 언박싱(auto unboxing)
JDK4 버전 이상부터는 박싱과 언박싱이 필요한 상황에서 자바 컴파일러가 이를 자동으로 처리해 줍니다.
클래스 타입 객체 = 일반 타입; //auto boxing
일반 타입 변수 = 객체;//auto unboxing
Wapper 클래스 비교
참고적으로 래퍼(wrapper) 클래스에 대입된 값은 ==, != 과 같은 연산자를 이용하여 값의 비교가 불가능합니다.
그 이유는 인스턴스를 생성하면서 heap 메모리에 값이 저장되고 객체 변수는 참조 값을 갖기 때문입니다.
따라서 equals() 메소드를 이용하거나 데이터를 언박싱하여 값을 비교해야 합니다.
이상으로 Wapper 클래스와 박싱, 언박싱에 대해 알아보았습니다.
'KoreaIt Academy > JAVA' 카테고리의 다른 글
21. JAVA의 컬렉션 프레임워크 - HashSet , HashMap (0) | 2021.07.26 |
---|---|
20. JAVA의 제네릭, 컬렉션 프레임워크 - LIST (0) | 2021.07.23 |
18. JAVA의 예외(Exception), 에러(Error), try-catch문, throw, throws (0) | 2021.07.22 |
17. JAVA의 람다식(Lambda Expression) , 메소드 참조 (0) | 2021.07.22 |
16. JAVA의 API, 외부 API를 이용하여 문자보내기 (2) | 2021.07.21 |
댓글