반응형
안녕하세요. 여행하는 개발자입니다.
오늘은 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에서는 int
↔ Integer
자동 변환을 제공합니다.
- 오토박싱: int → Integer
- 언박싱: Integer → int
Integer a = 10; // 오토박싱
int b = a + 5; // 언박싱
✅ 언제 어떤 걸 써야 할까?
int
는 연산 위주의 코드, 단순 변수에 적합Integer
는 컬렉션(List, Map), 제네릭, null 사용 가능성이 있는 경우에 사용
결론
int
는 성능과 메모리 효율이 뛰어나지만 null을 다룰 수 없고,Integer
는 객체이므로 유연하지만 상대적으로 비용이 큽니다.
상황에 따라 두 타입을 잘 구분해 사용하는 것이 성능 최적화와 안정성에 중요합니다.
반응형
'개발 Story > Java' 카테고리의 다른 글
[Java] HashMap과 HashSet 차이 (0) | 2025.06.24 |
---|---|
[Java] 람다식(Lambda)의 개념 및 사용법 (1) | 2025.06.17 |
[Java] public, private, protected 차이 (0) | 2025.06.17 |
[Java] String, StringBuffer, StringBuilder 차이 (0) | 2025.06.16 |
[Java] 인터페이스(Interface) vs 추상 클래스(Abstract Class) (0) | 2025.06.02 |