자바는 객체지향 언어이지만, 객체가 아닌 int
, double
같은 기본형(Primitive Type)이 있다.
기본형은 객체가 아니기 때문에 한계가 존재한다.
래퍼 클래스는 기본형을 객체로 감싸서 편리하게 사용하도록 도와준다.
기본형 | 래퍼 클래스 |
---|---|
boolean | Boolean |
byte | Byte |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
equals()
로 비교메서드 | 설명 |
---|---|
valueOf() | 래퍼 타입 반환. 숫자, 문자열 모두 지원 |
parseInt() parseLong() parseDouble() | 문자열을 기본형으로 변환 |
compareTo() | 값 비교. 내 값이 크면 1, 같으면 0, 작으면 -1 반환 |
Integer.sum() | 덧셈, static 메서드 |
Integer.min() | 작은 값, static 메서드 |
Integer.max() | 큰 값, static 메서드 |
public class WrapperClassMain {
public static void main(String[] args) {
// Integer
Integer newInteger = new Integer(10);
Integer integerObj = Integer.valueOf(10);
// Long
Long longObj = Long.valueOf(100);
// Double
Double doubleObj = Double.valueOf(10.5);
// 래퍼 클래스 -> 기본형
int intValue = integerObj.intValue();
long longValue = longObj.longValue();
}
}
박싱(Boxing)
Integer.valueOf(10)
언박싱(Unboxing)
intValue()
오토박싱(Auto-boxing), 오토 언박싱(Auto-unboxing)
컴파일러가 valueOf(), xxxValue()
의 코드를 대신 추가해주는 기능
int value = 7;
Integer boxedValue = value; // 오토 박싱
int unboxedValue = boxedValue; // 오토 언박싱
int
는 4byte 메모리 사용