728x90
반응형
혹시 여러분들 Integer와 int 의 차이에 대해서 궁금해하시거나 차이점을 알고 계신가요~?
문득 알고리즘과 자바 공부를 하며 갑자기 궁금증이 생겨 이렇게 글을 작성해봅니다.
찾아보니 자바(Java)에서 Integer와 int는 모두 정수를 다루는 데 사용되지만, 그 사용 방식과 특성에는 중요한 차이가 있습니다.
아래에서 각각의 설명과 차이점을 자세히 설명해보겠습니다.
int란?
- int는 자바의 기본 데이터 타입(primitive data type)으로, 32비트 정수를 저장함.
int의 특징?
- 기본 타입(Primitive Type) : int는 자바의 8가지 기본 데이터 타입 중 하나. 기본 타입은 객체가 아니므로, 추가적인 메서드나 속성을 가지지 않음.
int a = 10;
int b = 20;
int sum = a + b; // 기본적인 산술 연산이 가능하다
- 메모리 효율성 : 기본 타입은 객체가 아니므로, 상대적으로 메모리 사용이 효율적. 객체를 생성하지 않으므로 오버헤드가 없음.
- 값 저장 : 기본 타입 변수는 실제 값을 직접 저장.
int x = 5;
int y = x; // x의 값을 y에 할당
y = 10;
System.out.println(x); // 결과 값은 5가 출려됨, x는 y에 의해 영향을 받지 않음
Integer란?
- Integer는 자바의 래퍼 클래스(wrapper class)로, int 값을 객체로 다룸. 이는 java.lang 패키지에 포함되어 있음.
Integer의 특징?
- 래퍼 클래스(Wrapper Class) : Integer는 기본 타입 int를 객체로 다루기 위해 사용됨. 기본 타입을 객체로 변환하는 것은 박싱(Boxing)이라 부르며, 객체를 기본 타입으로 변환하는 것은 언박싱(Unboxing)이라 부름.
Integer a = 10; // 자동 박싱 (Auto-Boxing)
int b = a; // 자동 언박싱 (Auto-Unboxing)
- 메서드 제공 : Integer 클래스는 정수 값을 다루기 위한 다양한 메서드를 제공.
- Ex) parseInt(), toString(), compareTo(), equals()
String str = "123";
int num = Integer.parseInt(str); // 문자열을 정수로 변환
- 참조 타입(Reference Type) : Integer는 객체이므로, 기본 타입과 다르게 참조를 저장. 이는 값 자체를 저장하는 것이 아니라, 값을 가리키는 참조(메모리 주소)를 저장하는 것.
Integer x = 5;
Integer y = x; // x의 참조를 y에 복사
y = 10;
System.out.println(x); // 결과 값은 5가 출려됨, x는 y에 의해 영향을 받지 않음
- null 값 허용 : Integer는 객체이므로 null 값을 가질 수 있음. 이는 기본 타입 int와의 중요한 차이점 중 하나.
Integer num = null;
int vs Integer의 차이점?
- 타입 : int는 기본 데이터 타입(primitive type)이고, Integer는 래퍼 클래스(wrapper class)임.
- 메모리 : int는 값을 직접 저장하고, 메모리를 효율적으로 사용 가능. Integer는 객체로, 추가적인 메모리 오버헤드가 존재.
- 기능 : int는 메서드가 없지만, Integer는 다양한 메서드를 제공.
- 값 : int는 null 값을 가질 수 없으나, Integer는 null 값을 가질 수 있음.
- 사용 : int는 주로 간단한 계산에 사용되고, Integer는 객체가 필요할 때나 제네릭 컬렉션과 함께 사용됨.
결론
int와 Integer는 모두 정수를 다루기 위한 것이지만, 기본 타입과 래퍼 클래스라는 점에서 차이가 매우 클 것으로 생각됩니다. int는 메모리 효율적이고 값 자체를 저장하는 반면, Integer는 객체로서 다양한 메서드와 함께 제공되며 null 값을 가질 수 있으니 두 타입을 적절히 사용하면 앞으로 있을 다양한 코딩 테스나 알고리즘에서 효율성과 기능성을 모두 충족할 수 있지 않을까 하는 기대감을 가져봅니다.
https://github.com/bottomsUp-99
728x90
반응형
'Java Study' 카테고리의 다른 글
메서드(method)란? (0) | 2024.06.20 |
---|---|
Scanner VS BufferedReader 의 차이 (2) | 2024.06.19 |
Java 조건문과 반복문 (0) | 2024.06.18 |
Maven 과 Gradle의 차이 (2) | 2024.06.17 |
Java 연산자 (0) | 2024.06.17 |