프로젝트/Share Your Trip

[Java] Wrapper 클래스

cks._.hong 2024. 1. 7. 13:15

Wrapper 클래스 왜 궁금했을까❓

- Optional 클래스에 대해서 공부하는 과정에서 Wrapper 클래스의 개념이 나왔는데 몰랐던 개념이어서 공부하고 정리 해보려고 한다.

 

 

Wrapper 클래스

  • Java의 자료형은 기본 타입(primitive type)과 참조 타입(reference type)으로 나뉘는데 기본 타입을 객체로 다루기 위해서 사용하는 클래스를 Wrapper 클래스라고 지칭한다.
  • 기본 타입만 Wapper 클래스를 적용하는 이유는 boxing, unboxing 등 과정에서 발생하는 오버헤드때문에 성능 저하가 일어날 수 있기 때문이다.

 

Wrapper 클래스의 종류

기본 타입(Primitive) Wrapper 클래스
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

 

 

박싱(Boxing)과 언박싱(UnBoxing)

  • 박싱(Boxing)은 기본 타입의 데이터를 Wrapper 클래스의 인스턴스로 변환하는 과정
  • 언박싱(UnBoxing)은 Wrapper 클래스의 인스턴트에 저장된 값을 기본 타입의 데이터로 변환하는 과정
// 박싱(Boxing)
// Integer Wrapper 클래스에 176을 대입
Integer height = new Integer(176);


// 언박싱(UnBoxing)
// Integer Wrapper 클래스에서 값을 추출
int tempHeight = height.intValue();

 

JDK 1.5부터는 박싱(Boxing)과 언박싱(UnBoxing)을 Compiler가 자동으로 처리해주어 오토 박싱(AutoBoxing) 오토언박싱(AutoUnBoxing)이라고 한다.