개발 공부
[기본 타입, 래퍼 클래스] feat. 박싱, 언박싱
도됐좋
2023. 6. 20. 16:42
순서
1. 기본 타입(primitive type)
2. 래퍼 클래스(wrapper class)
3. 기본 타입 vs 래퍼 클래스
4. 박싱 vs 언박싱
✅ 기본 타입(primitive type)
- 자바에서 제공하는 데이터 타입
- 총 8종류가 있으며 정수형 / 실수형 / 문자형 / 논리형 타입으로 분류 가능
➤ 정수형 타입
- 소수 부분이 없는 수
- byte, short, int, long
➤ 실수형 타입
- 소수부나 지수부가 있는 수
- 정수형보다 훨씬 더 넓은 표현 범위
- float, double
➤ 문자형 타입
- 작은 정수나 문자 하나를 표현할 수 있는 타입
- char
**String은 원시 타입이 아니라 참조 타입으로 분류되어 특별한 성질을 가짐
➤ 논리형 타입
- 참 또는 거짓 중 한 가지를 가질 수 있는 타입
- boolean
✅ 래퍼 클래스(wrapper class)
- 8가지 기본 타입의 데이터를 객체로 포장해주는 클래스
기본 타입 | 래퍼 클래스 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
✅ 기본 타입 vs 래퍼 클래스
기본 타입 | 래퍼 클래스 | |
저장 위치 | stack에 저장됨 | heap영역에 저장되고 stack에 이를 가리키는 주소값이 할당됨 |
null 값 | null 값을 허용하지 않음 | null 값도 허용함 |
비교 방법 | '=='로 '주소'를 비교 | '.equals( )'로 '값'을 비교 |
메소드 | X | 클래스이기 때문에 제공되는 메소드 존재 ex) toString( ), intValue( ) 등등 |
제너릭 | X | 제너릭에서 사용 가능 ex) ArrayList<Integer> arr = new ArrayList<>(); |
✅ 박싱 vs 언박싱
➤ 박싱
- 기본 타입을 래퍼 클래스로 변환하는 것
- 박싱한 값은 변경 불가능
ex) int a = 10;
Integer b = new Integer(a);
➤ 언박싱
- 래퍼 클래스를 기본 타입으로 변환하는 것
- 언박싱한 값은 변경 가능
ex) Integer a = new Integer(10);
int b = a.intValue( );