래퍼클래스란?
- 자바의 자료형은 크게 기본타입(primitive type)과 참조타입(reference type)으로 나누어진다.
대표적으로 기본타입 char, int, float, double, boolean, long, short 있고 참조 타입은 class, interface 등이 있는데 프로그래밍을 하다 보면 기본타입의 데이터를 객체로 표현해야 하는 경우가 종종 있다.
이럴 때에 기본 자료타입(primitive type)을 객체로 다르기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다. - 자바는 모든 기본타입(primitive type)값을 갖는 객체를 생성할 수 있다.
이런 객체를 포장객체라고 하는데 그 이유는 기본 타입의 값을 내부에 두고 포장하기 때문이다.
래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없다. 만약 값을 변경하고 싶다면 새로운 포장 객체를 만들어야 한다.
래퍼 클래스 종류
기본 타입(primitive type) | 래퍼 클래스(wrapper class) |
byte | Byte |
char | Character |
int | Integer |
float | Float |
double | Double |
boolena | Boolean |
long | Long |
short | Short |
래퍼클래스는 java.lang 패키지에 포함되고 있고, char타입과 int 타입이 각각 Character와 Integer의 래퍼클래스를 가지고 있고 나머지는 기본 타입의 첫 글자를 대문자로 바꾼 이름을 가지고 있다.
primitive 자료형 - Wrapper클래스 관계
int | Integer |
primitive 자료형(long,float,double, ...) | Wrapper 클래스(객체) |
산술 연산이 가능하다 | Unboxing을 하지 않으면 산술 연산이 불가능 하지만 null 값을 처리할 수 있다. |
null로 초기화 할 수 없다 | null 값 처리가 용이하기 때문에 SQL과 연동할 경우 처리가 용이함 |
DB에서 자료형이 정수형이지만 null 값이 필요한 경우 Integer 사용 |
박싱(Boxing)과 언박싱(UnBoxing)
public class Wrapper_Ex {
public static void main(String[] args){
Integer num = new Integer(17); //박싱
int n = num.intValue(); //언박싱
System.out.println(n);
}
}
Auto boxing / unboxing
- 자바에서는 모든 경우가 아니지만 대부분의 경우에 자동으로 boxing/unboxing 해준다
int i = 1;
Integer integer = i; //int -> Integer(Auto boxing)
int i2 = integer; //Integer -> int (Auto unboxing)
출처
https://dev-coco.tistory.com/9
'이론 > 자바' 카테고리의 다른 글
[Java] 자바 메모리 구조, JVM (0) | 2024.09.18 |
---|---|
[Java] JVM 메모리 구조 - 런타입 데이터 영역(Runtime Data Area) (2) | 2024.09.18 |
[Java] TreeMap (0) | 2024.09.04 |
[Java] HashMap (2) | 2024.09.04 |
[Java]TreeSet (0) | 2024.09.04 |