`int`와 `Integer`의 차이점

wony·2024년 9월 9일

Java

목록 보기
26/30

intInteger의 차이점

자바에서 숫자를 다룰 때 사용되는 두 가지 주요 자료형은 기본형 (primitive type)int객체형 (wrapper class)Integer입니다. 이 두 타입의 주요 차이점은 다음과 같습니다:

1. 기본형 (int)

  • 설명: 자바의 기본 데이터 타입 중 하나로, 순수한 숫자 값만 저장합니다.
  • 크기: 4바이트 (32비트)
  • 값의 범위: -2^31부터 2^31-1까지
  • 특징:
    • 메모리에 직접 저장됨 (스택 메모리)
    • 연산이 빠르고, 메모리 효율적
    • 메서드나 추가 기능이 없음
  • 사용 예:
int a = 10;  // 기본형 정수
int b = a + 5;  // 산술 연산

2. 래퍼 클래스 (Integer)

  • 설명: 기본형 int를 객체로 감싸는 래퍼 클래스
  • 특징:
    • 객체로 취급되며, 힙 메모리에 저장됨
    • 메서드 제공 (예: compareTo(), toString(), valueOf())
    • null 값을 가질 수 있음
  • 사용 예:
Integer a = 10;  // 래퍼 클래스 사용
Integer b = a + 5;  // 자동 언박싱 후 연산
int c = b;  // 자동 언박싱 (Integer를 int로 변환)

3. 주요 차이점

특성intInteger
타입기본형 (Primitive)객체형 (Wrapper Class)
메모리스택 메모리에 저장힙 메모리에 저장
기본값0null 가능
메서드메서드 없음다양한 메서드 제공 (예: compareTo(), equals())
값 비교직접 값 비교 가능객체로 취급되므로 참조 비교와 값 비교 주의 필요
성능메모리 사용과 연산 속도가 빠름상대적으로 느림 (객체 생성 및 참조 때문)

4. 자동 박싱 (Auto-boxing)과 언박싱 (Unboxing)

  • 자바 5부터는 자동 박싱과 언박싱이 도입
    • 자동 박싱: 기본형 int가 자동으로 Integer 객체로 변환됨
    • 자동 언박싱: Integer 객체가 자동으로 기본형 int로 변환됨

예시:

Integer obj = 10;  // 자동 박싱: int 10이 Integer 객체로 변환됨
int num = obj;  // 자동 언박싱: Integer 객체가 int 값으로 변환됨

5. 언제 Integer를 사용해야 할까요?

  • 기본형이 아닌 객체로서 정수를 다루어야 할 때
    (예: 컬렉션 자료구조에 저장할 때)
  • null을 처리해야 할 때
  • 값에 대한 다양한 조작이 필요할 때
profile
안녕하세요. wony입니다.

0개의 댓글