JAVA/자료구조

Autoboxing

도전하는일반인 2021. 10. 2. 14:14

들어가기 전에

기본 자료형을 객체의 형태로 바꾸어주는 Autoboxing에 대해 알아봅니다.

 

학습 목표

Autoboxing을 설명할 수 있습니다.

 

핵심 단어

  • 기본 자료형과 래퍼 클래스
  • Autoboxing

 

 

Autoboxing

 

byte, short, int, char 등의 기본 자료형에 대해서 Java 가상 머신은 정확하게 필요한 만큼의 메모리를 할당합니다. 하지만 객체에 대해서는 이 객체를 가리키는 4바이트짜리 포인터와 힙의 공간을 할당합니다.

 

따라서 기본 자료형은 객체가 아니고 이것들은 객체 메소드를 상속받지 않습니다. 하지만 Java에는 기본 자료형뿐만 아니라 래퍼 클래스(Wrapper Class)가 존재합니다. 래퍼 클래스는 객체 버전의 기본 자료형입니다. byte는 Byte, short는 Short, int는 Integer, char는 Char로 바꾸면 됩니다.


이 둘 사이에서 Java는 autoboxing을 이용해서 이 둘을 적절하게 서로 바꿉니다.

 

 

autoboxing이란 래퍼(Wrapper) 클래스의 객체로 변환하는 것을 말합니다.

여기서 래퍼클래스란 기본 타입의 데이터를 객체로 취급해야 하는 경우가 있는데 기본 타입의 데이터를 그대로 사용할수는 없고 데이터를 객체로 변환해야 하는데 해당하는 데이터들을 객체로 포장해주는 것을 말합니다.

 

 

아래는 예시입니다.

Integer a = 100;

과 같이 처리하면 Integer는 래퍼 클래스이므로 오토박싱이 일어나면서 new Integer(100)을 알아서 처리해줍니다. 

 


 

생각해보기


1) 래퍼 클래스는 기본 자료형과 어떤 점이 다른가요?

 

나의 생각 : 객체와 변수의 차이인거 같다.

 

출처: https://www.boostcourse.org/cs204/lecture/480739?isDesc=false 네이버커넥트재단

 

 

'JAVA > 자료구조' 카테고리의 다른 글

연결 리스트  (0) 2021.10.02
예외  (0) 2021.10.02
매개변수화 타입  (0) 2021.10.01
제너릭 프로그래밍 소개  (0) 2021.10.01
Comparable 인터페이스  (0) 2021.10.01