개발 공부

[기본 타입, 래퍼 클래스] 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( );