[Java] autoboxing과 unboxing

김민성·2021년 8월 23일
0

자바의 데이터 타입

Primitive data (원시타입 데이터)

  • byte, char, int, long, float, short, double, boolean
  • null을 담을 수 없다.
  • 상대적으로 적은 메모리 사용
  • 스택 메모리에 올라간다.
  • 제네릭의 타입으로 사용 가능하다.
  • 접근 속도가 빠르다(성능 우위)

Object data (참조타입 데이터)

  • 데이터는 힙 메모리에 올라가고 레퍼런스(주소값)만 스택메모리에 존재한다.
  • nullable하다.
  • 제네릭의 타입으로 사용 불가.

Wrpper Class

  • primitive data를 object data화 시킨 클래스

autoboxing

  • 컴파일러가 원시타입의 값을 wrapper 클래스의 객체로 변환하는 것

public class Sample {
private int score;
}
public Integer getScore() {
return score;
}

  • 자바의 컴파일러가 자동으로 int -> Integer로 변환해주기 때문에 에러가 발생하지 않는다.
    - 박싱된 타입의 두 인스턴스는 값이 같더라도 다르게 인식된다 (참조값이 다르다)

autoboxing

  • 컴파일러가 wrapper 클래스 타입을 원시 타입으로 자동 변환하는 것

    Integer a = new Integer(10);
    int b = a;

0개의 댓글