[CS] 오토박싱 & 언박싱

박상민·2023년 3월 1일
0

Computer Science

목록 보기
7/29

📌 Wrapper Class

💡 기본형 타입에 대응되는 참조형 클래스이다.

기본형 타입Wrapper 클래스
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean

📌 Boxing & Unboxing

  • Boxing
    기본형 타입 데이터에 대응하는 Wrapper 클래스로 만드는 동작이다.
    int i = 10;
    Integer num = new Integer(i);
  • UnBoxing
    Wrapper 클래스에서 기본 타입으로 변환하는 동작이다.
    Integer num = new Integer(10);
    int i = num.intValue();

📌 Auto Boxing & Auto Unboxing

  • JDK 1.5 이후로는 자바 컴파일러가 박싱과 언박싱이 필요한 상황에 자동으로 처리해준다.

  • 편의성을 위해 오토박싱과 언박싱이 제공되지만, 내부적으로 박싱과 언박싱하는 추가 연산을 거치기 때문에 오토박싱, 언박싱이 일어나지 않도록 구현하는 것이 성능면에서 유리하다.

  • 약 100만 건의 연산을 기준으로 약 5배의 성능 차이가 나기 때문에 불필요한 오토 캐스팅이 일어나지 않도록 구현하는 습관이 필요하다.

  • Auto Boxing

    int i = 10;
    Integer num = i;
  • Auto Unboxing

    Integer num = new Integer(10);
    int i = num;
profile
💡 클린코드를 지향하는 Backend Developer

0개의 댓글