[Java/Kotlin] Wrapper Class

Jay·2021년 2월 26일
0

Java&Kotlin

목록 보기
18/30
post-thumbnail

Wrapper Class

  • 기본 자료형을 객체 타입의 자료형으로 변환이 필요할 때 주로 사용한다.

  • 사용용도

    • 객체로 저장해야 하는 경우
    • 매개변수로 객체가 요구될 경우(ex, generic, Collection type)
    • 객체 간 비교가 필요한 경우
    • Generic이나 Collection에서 사용할 경우, 기본형을 쓸 수 없기에 이를 Wrapping한 형태를 사용해야 한다.
  • 특징
    • 산술 연산을 위한 클래스가 아니기에 Immutable하다.
    • 불변 객체이기에 값에 대한 변경은 불가하고 새로운 값(객체)의 할당이나 참조만 가능하다.
    • Boxing : 기본 자료형 -> Wrapper class
    • unboxing : wrapper class -> primitive type
    • jdk 1.5부터 Auto boxing, Auto unboxing 지원
    • unboxing시 사용되는 메소드는 다음과 같은 형태를 갖는다.
      • intValue : 객체 -> int 값으로 변환

문자를 숫자로 바꾸거나, 숫자를 문자로 바꿀 때 두 가지 방식의 차이점이 존재한다.

// 문자열 -> 기본형
int number1 = Integer.parseInt("100");

// 문자열 -> wrapper class
Integer number2 = Integer.valueOf("100");

Auto Boxing & Auto Unboxing이 지원되기에 반환 값이 기본형이든, wrapper class이든 차이가 없어졌다.
굳이 비교하지 않고 valueOf()를 사용해도 된다.
굳이 성능 비교를 하자면 valueOf()가 조금 더 느리다고 한다.

  • 산술 연산을 할 거라면 parseInt로 하고 그렇지 않다면 valueOf로 하면 될 것이다.
    이는 int vs Integer를 보면 알 수 있다.
profile
developer

0개의 댓글