자바는 기본타입의 값을 가지는 객체를 생성할 수 있는데 이를 Wrapper 객체라고 한다.
기본형을 쓰면 되지 않나..? 기본형 변수들(Primitive types)도 객체로 다루어야 하는 경우가 있다
외부에서 데이터를 받아올 때, 값을 객체로 저장해야 할 때 등
컬렉션에서 사용할 때(컬렉션은 객체만 사용가능함)
기본형과 래퍼 클래스
기본형
래퍼 클래스
byte
Byte
ch
Charater
short
Short
int
Integer
long
Long
float
Float
double
Double
boolean
Boolean
BigInteger : long의 범위를 넘어서는 큰 정수
BigDecimal : double의 범위를 넘어서는 큰 부동 소수
2. 박싱과 언박싱
박싱 : 기본형 ➡️ 래퍼 클래스
언박싱 : 래퍼클래스 ➡️ 기본형
public class BoxingUnBoxing {
public static void main(String[] args){
Integer boxing1 = new Integer(100);
Integer boxing2 = Integer.valueOf(100);
int unboxing = boxing1.intValue();
}
}
1) 오토박싱
JDK 1.5부터 직접 박싱, 언박싱 하지 않아도 기본형을 래퍼 클래스로 변환해주는 것을 말한다.
import java.util.ArrayList;
public class BoxingUnBoxing {
public static void main(String[] args){
Integer autoBoxing = 100;
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
int autoUnBoxing = list.get(0);
System.out.println(autoUnBoxing);
}
}
IDE를 사용하면 박싱한 것을 아래와 같이 오토박싱하도록 알려준다.
Remove boxing을 하게 되면 코드는 위에서 오토박싱한 코드와 같아진다.(Integer autoBoxing = 100;)