티스토리 뷰
Wrapper 클래스
- 자바 기본 데이터타입과 일대일 대응하는 8개의 클래스 모음(java.lang 패키지)
- 기본 데이터타입 변수로 할 수 있는 일이 한정적이므로 클래스로 정의하여 다양한 작업을 수행하도록 지원한다.
기본 데이터타입은 Stack 공간에 데이터를 저장 및 관리하지만 참조 데이터타입(객체)은 Heap 공간에 실제 데이터가 저장되며, 참조변수가 해당 공간의 주소값을 저장 및 관리한다. 기존엔 기본 데이터타입 변수와 참조 데이터타입 변수가 호환이 불가능 했으나 현재는 오토 박싱, 언박싱 기능의 제공으로 자동변환이 가능하다.
오토박싱
기본 데이터타입에서 Wrapper 클래스 타입 객체로 자동변환 (기본 데이터 => Wrapper)
Heap 공간의 객체 박스에 기본 데이터타입 변수를 전달하여 객체 형태로 포장한다.
Integer n1;
int num1 = 10;
n1 = num1; // 오토박싱
System.out.println("기본타입 num1 = " + num1); // 기본타입 num1 = 10
System.out.println("참조타입 n1 = " + n1); // 참조타입 n1 = 10
오토 언박싱
Wrapper 클래스 타입 객체의 포장을 뜯어 기본 데이터타입을 꺼낸다. (Wrapper => 기본 데이터)
Integer n2 = new Integer(20);
int num2 = 0;
num2 = n2;
System.out.println("기본타입 num2 = " + num2); // 기본타입 num2 = 20
System.out.println("참조타입 n2 = " + n2); // 참조타입 n2 = 20
Integer n4 = 30; // 오토 박싱
Object o = n4; // 업캐스팅
Object o2 = 30; // 오토박싱 -> 업캐스팅
System.out.println(o2 instanceof Integer); // true
'배운 것 기록 > java' 카테고리의 다른 글
Stack, Queue (0) | 2022.06.19 |
---|---|
Set, List (0) | 2022.06.18 |
enum (0) | 2022.06.10 |
interface (0) | 2022.06.08 |
abstract 추상화 (0) | 2022.06.07 |
댓글