반응형

안녕하세요. 여행하는 개발자입니다.
오늘은 Java에서 자주 혼동되는 int와 Integer의 차이에 대해 정리해보겠습니다.

int vs Integer 차이

int는 Java의 기본형(primitive type)이며, Integer참조형 객체(wrapper class)입니다.

✅ 기본 개념

구분 int Integer
자료형 종류 기본형(Primitive) 객체형(Wrapper Class)
저장 방식 스택(Stack) 힙(Heap) 영역에 객체로 저장
기본값 0 null
null 허용 여부 불가능 가능
사용 예 계산, 단순 변수 컬렉션, 제네릭 타입

 

✅ 코드 예시

// int는 null 불가
int x = 10;
// x = null; // 컴파일 에러

// Integer는 객체이므로 null 가능
Integer y = 20;
y = null; // 가능

// List에 int는 직접 저장 불가 → Integer 사용
List<Integer> list = new ArrayList<>();
list.add(100);

 

✅ 오토박싱 / 언박싱

Java에서는 intInteger 자동 변환을 제공합니다.

  • 오토박싱: int → Integer
  • 언박싱: Integer → int
Integer a = 10;   // 오토박싱
int b = a + 5;    // 언박싱

 

✅ 언제 어떤 걸 써야 할까?

  • int는 연산 위주의 코드, 단순 변수에 적합
  • Integer컬렉션(List, Map), 제네릭, null 사용 가능성이 있는 경우에 사용

결론

int는 성능과 메모리 효율이 뛰어나지만 null을 다룰 수 없고,
Integer는 객체이므로 유연하지만 상대적으로 비용이 큽니다.

상황에 따라 두 타입을 잘 구분해 사용하는 것이 성능 최적화와 안정성에 중요합니다.

반응형

+ Recent posts