int 와 Integer의 차이가 궁금해서 찾아 보았다.
[int]
int는 기본 자료형으로 Java에서 가장 단순한 형태의 데이터 타입이다.
자료형은 data의 type 에 따라 값이 저장될 공간의 크기와 저장 형식을 정의 한 것이다.
예를 들면,
int a = 1;
char ch = 'a';
위와 같은 것들이 주어 졌을때 a 나 ch 는 변수(변수명) 이 되는 것이고
앞에 적힌 int 나 char 가 변수의 형태 를 지정해 주고 있는 것이다. 그리고 이것을 변수의 타입 (data type = 자료형) 이라고 한다.
자료형에 관한 글을 아래에 자세히 적어 놓았으니 한번 보고 오는거 추천!
[Integer]
그렇다면 Integer는 무엇일까?
Integer는 int 의 wrapper class 로 Java의 java.lang 패키지에 포함 되어 있다.
객체 타입임으로 new Integer(10) 또는 Integer.valueOf(10)과 같은 방식으로 객체를 생성하여 사용 한다.
[Wrapper Class]
wrapper class는 기본형을 객체로 다루기 위해 사용하는 클래스들을 의미한다.
그러면 왜 기본형을 객체로 다뤄야 할까?
- 컬렉션 클래스와 함께 사용하기 위해
더보기
- Java의 컬렉션 클래스는(ArrayList, HashMap, HashSet 등)는 객체만 다룰 수 있다. 기본 자료형은 직접적으로 컬렉션에 저장할 수 없기 때문에 기본형을 객체로 감싸주는 Wrapper 클래스를 사용해야한다.
- 예를 들면, ArrayList<int> 는 사용 할 수 없고 ArrayList<Integer>는 사용 가능한 그런 것이다.
- Null 값을 다루기 위해
더보기
- 기본형은 Null 깞을 가질 수 없기 때문에 null을 허용하고 싶다면 Integer를 사용해야 한다.
- 자동 박싱 (Auto-Boxing)과 언박싱(Unboxing)
더보기
- 자동 박싱(Auto-boxing): 기본형 값이 자동으로 해당 Wrapper 클래스 객체로 변환되는 기능이다. 예를 들어, int 값을 Integer 객체로 자동 변환할 수 있다.
- int num = 100;
Integer integerObj = num; // 자동 박싱 (int -> Integer) - 자동 언박싱(Unboxing): Wrapper 클래스 객체가 기본형 값으로 자동 변환되는 기능이다. 예를 들어, Integer 객체가 int로 자동 변환될 수 있다.
- Integer wrappedNum = new Integer(200);
int primitiveValue = wrappedNum; // 자동 언박싱 (Integer -> int)
- 객체의 메서드 활용
더보기
Wrapper 클래스는 기본형 값에 대한 다양한 유틸리티를 제공하고 그것을 사용하여 코드를 유연하게 처리하기 위해 서이다.
- 제네릭과 함께 사용하기 위해
[primitive Type - Wrapper Class]
각자의 짝이 있음...
[결론]
특징 | int | Integer |
타입 | 기본 타입 (primitive type) | 래퍼 클래스 (reference type) |
메모리 저장 위치 | 스택(Stack) | 힙(Heap) |
값 설정 여부 | null을 허용하지 않음 | null을 허용 |
제네릭에서 사용 여부 | 사용할 수 없음 | 사용할 수 있음 |
성능 | 빠름 | 느림 (객체 생성 및 메모리 사용) |
기능 | 단순히 정수 값 저장 | 다양한 메서드 및 유틸리티 제공 |
'JAVA' 카테고리의 다른 글
BufferedReader 와 BufferedWriter (0) | 2024.11.23 |
---|---|
Java int배열의 오름차순과 내림차순 (0) | 2024.11.21 |
Java 문자열 뒤집기 - reverse() (0) | 2024.11.19 |
Java 참조 타입 (Reference Type) 왜 쓰나요? (0) | 2024.11.17 |
Java 기본 자료형(Primitive Type)과 참조 자료형(Reference Type)의 차이 (0) | 2024.11.16 |