[자바의 정석 기초편] Wrapper, Number 클래스, 오토 박싱 & 언박싱

JEREGIM·2023년 2월 28일
0

자바의 정석 기초편

목록 보기
12/23

📌Wrapper 클래스

8개의 기본형을 객체로 다뤄야할 때 사용하는 클래스

기본형Wrapper 클래스
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
  • char 형과 int 형을 제외하고 나머지 기본형은 첫 글자를 대문자로만 바꿔주면 된다.

자바는 객체지향언어이지만 기본형이 있는 이유

int i = 100;
Integer i2 = new Integer(100);

기본형 변수 i는 값에 직접 접근이 가능하지만 참조형 변수 i2는 100이 저장되어있는 공간의 주소를 가지고 있기 때문에 값에 접근하려면 일을 2번 수행해야한다. 이러한 차이가 성능에 영향을 주기 때문에 기본형이 있는 것이다.


📌Number 클래스

모든 숫자 래퍼 클래스의 조상

래퍼 클래스를 기본형으로 바꿔줄 때 사용하는 메서드들을 가지고 있다. (intValue(), longValue(), doubleValue() 등)

Integer i = new Integer(100);
int i2 = i.intValue(); 
  • intValue() : 래퍼 객체를 기본형으로 바꿔주는 메서드

📌문자열을 숫자로 변환하기

문자열을 숫자로 변환하는 다양한 방법

int i = new Integer("100").intValue();
int i2 = Integer.parseInt("100");
Integer i3 = Integer.valueOf("100");
  • Integer.parseInt : 문자열 -> 기본형으로 바꾸는 방법
  • Integer.valueOf : 문자열 -> 래퍼 클래스로 바꾸는 방법

n진법의 문자열을 숫자로 변환하는 방법

int i = Integer.parseInt("100", 2);
int i2 = Integer.parseInt("100", 8);
int i3 = Integer.parseInt("100", 16);
int i4 = Integer.parseInt("FF", 16);

i = 4
i2 = 64
i3 = 256
i4 = 255


📌오토 박싱(Auto boxing) & 언박싱(unboxing)

오토 박싱 : 기본형의 값을 참조형 객체로 자동 형변환해주는 것
오토 언박싱 : 참조형 객체를 기본형으로 자동 형변환해주는 것

int i = 5;
Integer i2 = new Integer(7);

int sum = i + i2;
  • 컴파일러 후의 코드
    int sum = i + i2; -> int sum = i + i2.intValue();
    -> 컴파일러가 자동으로 코드를 바꿔준다.
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(100); // 오토 박싱

int i = list.get(0); // 오토 언박싱
  • list.add(100) -> list.add(new Integer(100)) 컴파일러가 자동으로 변환해준다. 이것을 오토 박싱이라고 한다.

  • list.get(0) = new Integer(100) -> (new Integer(100)).intValue() 컴파일러가 자동으로 래퍼 클래스에 intValue()을 붙여서 기본형으로 변환해준다. 이것을 오토 언박싱이라고 한다.

  • ArrayList에 Integer 형만 담을 수 있지만 오토 박싱을 통해 기본형 값 100을 추가해도 된다.

0개의 댓글