[Java] 자바 랩퍼(wrapper) 클래스와 boxing / unboxing
랩퍼(wrapper) 클래스
- 자바의 원시 데이터 타입(primitive type)을 다루는 클래스를 의미한다.
* byte ---> java.lang.Byte
* short ---> java.lang.Short
* int ---> java.lang.Integer
* long ---> java.lang.Long
* float ---> java.lang.Float
* double ---> java.lang.Double
* boolean ---> java.lang.Boolean
* char ---> java.lang.Character
왜 이런 클래스를 만들었는가?
- 프로그래밍을 하다보면 원시 데이터 타입의 값을 다뤄야 하는 경우가 있다.
예) Object obj = 20 (x)
Object obj = new Integer(20); (o)
- 또 산술연산자나 관계연산자, 비트 논리연산자, 논리 연산자, 비트 이동 연산자, 조건
연산자 외에 추가적인 기능을 클래스에 선언해 두었다.
예) Integer.parseInt(문자열)
- 오토 박싱(auto-boxing) :
원시 데이터 타입과 랩퍼 클래스 간의 전환을 자동으로 처리하는 것
ㄴ boxing : 원시 데이터 타입의 값을 랩퍼 클래스의 인스턴스에 담는 것
ㄴ unboxing : 랩퍼 클래스의 인스턴스에서 원시 데이터 타입의 값을 자동으로
추출하는 것
랩퍼(wrapper) 클래스의 boxing과 unboxing 예제
* 참고 : 다음 예제
String 클래스와 랩퍼(wrapper) 클래스는 StringBuffer 클래스와 달리
equals() 메서드를 오버라이딩 한다. 전자의 equals()는 주소가 아닌 값을 비교하고
후자는 Object 클래스의 equals()를 자동으로 상속 받아 주소를 비교한다.
랩퍼(wrapper) 클래스의 equals() 메서드 예제
- 실행 결과 :
false
true
---------------------------
false
false
'Programming > java' 카테고리의 다른 글
[Java] final 명령어 (public static final ...) (0) | 2017.05.15 |
---|---|
[Java] 컬렉션 클래스 - List, Set, Map의 개념 정리 (3) | 2017.05.12 |
[Java] Object 클래스 - toString() 메서드의 재정의 예제 (0) | 2017.05.12 |
[Java] 오버라이딩 (overriding)과 super 키워드 (0) | 2017.05.12 |
[Java] 상속 (inheritance)과 Object 클래스 (0) | 2017.05.12 |