Wrapper Class와 Boxing, UnBoxing, AutoBoxing, AutoUnBoxing

2021. 2. 3. 21:00Study

JAVA의 래퍼(Wrapper) 클래스와 Boxing, Unboxing 이란 무엇일까 ? 

자바의 자료형은 크게 기본형 byte, char, short, int, long, float, double, boolean등이 있습니다.

특징은 기본 타입의 첫 문자를 대문자로 바꾼 이름을 가지고 있습니다.

- 래퍼(Wrapper) 클래스

기본 자료형(int, float, boolean등)의 데이터를 인스턴스(객체)로 만들기 위해 사용하는 클래스입니다.

사용 이유는 뭘까요?

기본 자료형의 값을 굳이 래퍼(Wrapper)클래스로 포장하는 이유는 제네릭, 자료구조, 매개변수 등 기본 자료형이 아

 

닌 레퍼런스 타입을 필요로 하는 경우가 많고 메서드를 갖고 있어 다양하게 활용이 가능하기 때문입니다.

기본타입      포장 클래스

byte            Byte

char            Character

short           Short

int              Integer

long            Long

float            Float

double         Double

boolean       Boolean

박싱(Boxing) & 언박싱(Unboxing)

- 박싱(Boxing) : 기본 타입의 값을 포장 객체로 만드는 과정을 말한다.

- 언박싱(Unboxing) : 포장 객체에서 기본 타입의 값을 얻어 내는 과정을 말한다.

int data = 10;

Integer num = new Integer(data); // boxing

int num2 = num.intValue(); // unBoxing

오토박싱(AutoBoxing) & 오토언박싱(AutoUnBoxing)

- 오토박싱(AutoBoxing) : JDK 1.5 이상에서는 기본 타입이 데이터를 객체 타입의 데이터에 할당하면

기본타입의 데이터가 객체 타입의 데이터로 자동으로 형변환이 되면서 참조 변수에 할당된다.

- 오토언박싱(AutoUnBoxing) : 오토박싱과 반대로 객체 타입의 데이터를 기본 타입의 변수에 할당하면 자동으로 형변환이된다.

int data = 100;

Integer num = data; // autoBoxing

Integer num2 = new Integer(200);

int value = num2+ 100; //오토언박싱

  * 기본 타입은 null이 없다 하지만 서버에서 데이터를 받을 때 nullable하다.

  Integer number = new Integer();

  number는 객체이다.

통신해서 넘어온 데이터가 null이여도 자연스럽게 받을수있다.