※ 포장 클래스(Wrapper class)
: 기본 자료형(byte, char, short, int, long, float, double, boolean, 메모리 상에 직접 값을 저장하며, null 값을 가질 수 없음 )을 참조형(객체(Object)를 나타내는 자료형으로, 클래스, 인터페이스, 배열 등이 여기에 해당. 이 자료형들은 메모리 상에 객체의 주소를 가지며, null 값을 가질 수 있다)으로 바꿀 때 사용하는 class들
포장 객체를 생성하기 위한 클래스는 java.lang 패키지에 포함되어 있다.
기본타입 | 포장 클래스 |
byte | Byte |
char | Character |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
※ 박싱(boxing) : 기본 자료형을 해당하는 참조 자료형으로 변환하는 과정, 기본 타입의 값을 포장 객체로 만드는 과정. 포장 클래스 변수에 기본 타입 값이 대입할 때 발생. 기본 자료형 값을 그에 해당하는 래퍼 클래스(wrapper class)로 감싸서 참조 자료형으로 만듭니다. 기본형(int) → 참조형(Integer) → Object로 업캐스팅
※ 언박싱(unboxing) : 포장 객체에서 기본 타입의 값을 얻어내는 과정. 기본 타입 변수에 포장 객체가 대입할 때 발생
int i = 42; // 기본 자료형 int
Integer wrappedInt = i; // Boxing을 통해 int를 Integer로 변환, 박싱
int value = obj; //언박싱
int i = (int)"1";// 문자열을 정수로 강제 형변환 불가능
// 기본 자료형이랑 참조형은 직접적인 형변환 불가능
// 정수와 문자열 간의 변환은 메서드를 사용
int i = 1;
String str = Integer.toString(i); // 또는 String.valueOf(i);
String str = "123";
int i = Integer.parseInt(str); // 또는 int i = Integer.valueOf(str);
public class WrapperTest {
public static void main(String[] args) {
int i = 100;
Object obj;
obj = Integer.valueOf(i);// Boxing:{기본형(int) -> 참조형(Integer)} -> Object로 업캐스팅
obj = i; // AutoBoxing 됨
// 컴파일 시에 Integer.valuaeOf(i); 로 코드가 바뀜
int j;
//Object를 다운캐스팅 UnBoxing : {Integer(참조형) -> int(기본형) }
j = ((Integer)obj).intValue();
j = (Integer)obj; // AutoUnboxing됨
//컴파일시에 ((Integer)obj).intValue(); 로 코드가 바뀜;
}
}
'언어 > Java' 카테고리의 다른 글
어노테이션(Annotation) (0) | 2023.08.08 |
---|---|
날짜와 시간 클래스 (0) | 2023.08.08 |
정규표현식(regex) (0) | 2023.08.08 |
문자열 클래스 (0) | 2023.08.08 |
롬복(Lombok) (0) | 2023.08.08 |