[JAVA] 오토 박싱(Autoboxing) & 언 박싱(Unboxing)

지누초이·2024년 3월 5일
0

JAVA

목록 보기
2/7
post-thumbnail

AutoBoxing과 UnBoxing은 JAVA 1.5버전에 도입된 개념으로, 원시 타입과 Wrapper Class 타입 간의 형 변환을 일컫는다. 이전에 작성한 원시타입과 참조타입과 관련이 있다.


원시 타입과 Wrapper Class간 비교

원시 타입Wrapper Class
booleanBoolean
byteByte
shortShort
intInteger
floatFloat
longLong
doubleDouble
charCharacter

Autoboxing

  • 원시 타입의 데이터를 해당하는 Wrapper Class의 객체로 변환하는 것이다.
  • 형 변환 과정에서 메모리의 동적 할당과 각 원시 타입에 대한 객체 초기화가 포함된다.
  • 예시
ArrayList<Integer> al1 = new ArrayList<>();
al1.add(10);
al1.add(20);
al1.add(30);

위 예시의 경우 제네릭 타입으로 Integer가 명시되었지만 add() 메서드의 인자로는 원시 타입인 int형이 전달되었다. 이 경우 원시 타입의 값이 Wrapper Class 타입의 객체로 변환된다.


Unboxing

  • AutoBoxing의 반대로 Wrapper Class의 타입을 원시 타입으로 변환하는 것이다.
  • 예시
ArrayList<Integer> al1 = new ArrayList<>();
al1.add(10);
al1.add(20);
al1.add(30);

int val = al1.get(1);	// 20

위 예시의 경우 al1는 Integer 타입이 명시되어 있지만 int형 val변수에 할당하며 원시 타입으로 형 변환 된다.

0개의 댓글