int와 Integer의 차이점자바에서 숫자를 다룰 때 사용되는 두 가지 주요 자료형은 기본형 (primitive type)인 int와 객체형 (wrapper class)인 Integer입니다. 이 두 타입의 주요 차이점은 다음과 같습니다:
int)
- 설명: 자바의 기본 데이터 타입 중 하나로, 순수한 숫자 값만 저장합니다.
- 크기: 4바이트 (32비트)
- 값의 범위: -2^31부터 2^31-1까지
- 특징:
- 메모리에 직접 저장됨 (스택 메모리)
- 연산이 빠르고, 메모리 효율적
- 메서드나 추가 기능이 없음
- 사용 예:
int a = 10; // 기본형 정수 int b = a + 5; // 산술 연산
Integer)
- 설명: 기본형
int를 객체로 감싸는 래퍼 클래스- 특징:
- 객체로 취급되며, 힙 메모리에 저장됨
- 메서드 제공 (예:
compareTo(),toString(),valueOf())- null 값을 가질 수 있음
- 사용 예:
Integer a = 10; // 래퍼 클래스 사용 Integer b = a + 5; // 자동 언박싱 후 연산 int c = b; // 자동 언박싱 (Integer를 int로 변환)
특성 intInteger타입 기본형 (Primitive) 객체형 (Wrapper Class) 메모리 스택 메모리에 저장 힙 메모리에 저장 기본값 0 null 가능 메서드 메서드 없음 다양한 메서드 제공 (예: compareTo(),equals())값 비교 직접 값 비교 가능 객체로 취급되므로 참조 비교와 값 비교 주의 필요 성능 메모리 사용과 연산 속도가 빠름 상대적으로 느림 (객체 생성 및 참조 때문)
- 자바 5부터는 자동 박싱과 언박싱이 도입
- 자동 박싱: 기본형
int가 자동으로Integer객체로 변환됨- 자동 언박싱:
Integer객체가 자동으로 기본형int로 변환됨예시:
Integer obj = 10; // 자동 박싱: int 10이 Integer 객체로 변환됨 int num = obj; // 자동 언박싱: Integer 객체가 int 값으로 변환됨
Integer를 사용해야 할까요?
- 기본형이 아닌 객체로서 정수를 다루어야 할 때
(예: 컬렉션 자료구조에 저장할 때)null을 처리해야 할 때- 값에 대한 다양한 조작이 필요할 때