프로그래밍/Java

AutoBoxing과 UnBoxing에 대한 이야기

seungdols 2015. 9. 19. 23:20


Java8 혹은 또 프로그래밍을 하다보니 Autoboxing/unboxing에 대해 자주 접하게 된다.

그리고 그 개념은 소홀해었는데 알고보니 중요하더라하는 이야기를 하고싶었다.

그래서 블로그에 정리하게 되었다.


AutoBoxing 이란?


JDK 1.5부터 지원하게 되는 건데, 이를테면 쉽게 설명하자면, Data type에 관한 야이기이다.

int primitive  = 123;을 하게 되면, 기본 타입 Primitive라고 합니다.

이건 알고 있죠 ?

그럼 이건요 ?

Integer integer = 123;
Integer integer1 = new Integer(444);

위는 사실상 정말 다른 내용입니다. Integer class는 Wrapper class라고도 하는데 Primitivie에 대한 객체타입으로

우리가 프로그래밍 하는 중간마다 객체형으로 처리를 해야할 때 쓰입니다.


사실 위 코드에서 AutoBoxing을 일어났습니다.



바로

Integer integer = 123;

여기에서 일어났습니다. 123은 기본 데이터 타입인데 , 지금 참조타입에 대입을 해주죠.

사실 컴파일러단에서 아 ~ 기본 정수형 타입! 그래 너는 Integer Wrapper class니까 자동으로 new Integer(123)으로 바꿔주자.

이렇게 됩니다. 결국 컴파일러측에서 눈치채고 Primitive type 데이터를 Wrapper class에 자동으로 Boxing을 해준다는 의미입니다.


Unboxing 이란?

Autoboxing의 반대로 볼 수 있습니다. 기본 타입을 Wrapper 포장하는 것이 Autoboxing이라면,

포장 된 wrapper에서 primitive type으로 꺼내는 것을 Unboxing이라고 합니다.


int primitive = integer;
System.out.println(primitive);

위의 코드는 정상적으로 잘 동작합니다. 원래는 integer.intValue()로 값을 받아야 하지만, 알아서 아!

Integer class에 저장된 값을 알아서 Unboxing 후 primitivie 변수에 넣어줍니다.



  •  무단 수정 및 배포는 금지합니다. 
  •  모든 내용은 본 블로그 운영자가 정리한 내용입니다. 
  •  참조한 정보에 대해서는 출처를 남기고 있습니다.
  •  틀린 내용 / 오류가 포함된 내용은 댓글로 남겨주세요.
  •  choiseungho0822@gmail.com 보내주셔도 됩니다.
  •  Seungdols Wiki 운영중입니다.


반응형