일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 삼항연산자
- git
- 깃허브
- int와 integer
- dart
- mybatis
- push함수
- 배열
- java
- js
- React
- 자바
- 콘솔게임
- Middleware
- 네임드생성자
- 오류
- 생성자
- qqOperater
- Pug
- 다형성
- DB
- 추상클래스
- 리액트
- Spring
- app.use
- 코딩테스트
- Sort()
- Oracle
- Node.js
- 자바스크립트
- Today
- Total
평행코드
Integer와 Int의 차이? 본문
❄ integer와 int는 서로 다른 데이터 타입입니다. 아래는 두 개의 데이터 타입 간의 주요 차이점입니다
자료형
int: int는 자바의 기본(primitive) 데이터 타입입니다.
32비트 크기의 부호 있는 정수를 표현합니다.
int는 메모리 상에서 직접 값을 저장하고, null 값을 가질 수 없습니다.
Integer: Integer는 int의 래퍼(wrapper) 클래스로, int를 객체로 다룰 수 있도록 해줍니다.
Integer는 int 값을 감싸고 있는 객체이며, null 값을 가질 수 있습니다.
Integer는 객체이므로 메서드 호출이나 객체 간 상호작용에 유용합니다.
Null 값 처리
int: int는 기본 데이터 타입이므로 null 값을 가질 수 없습니다.
따라서 int 변수는 항상 값이 존재해야 합니다.
Integer: Integer는 객체이므로 null 값을 가질 수 있습니다.
Integer 변수는 null일 수도 있고, 실제 값이 존재할 수도 있습니다.
사용 시 유연성
int: int는 기본 데이터 타입이기 때문에 메서드의 매개변수로 사용할 때 추가적인 기능을 수행할 수 없습니다.
기본적인 연산 및 비교만 가능합니다.
Integer: Integer는 객체이므로 메서드의 매개변수로 사용할 때 다양한 기능을 수행할 수 있습니다.
예를 들어, Integer 객체에 대해 메서드 호출이나 null 여부를 확인할 수 있습니다.
따라서, int는 기본 자료형으로 메모리를 적게 사용하고 빠른 연산이 가능하지만, null 값을 가질 수 없습니다.
반면에 Integer는 int를 객체로 다룰 수 있으며 null 값을 가질 수 있지만,
메모리 사용이 좀 더 많고 연산이 더 무겁습니다.
❄ 객체가 null 값을 가질 수 있는 이유는??
객체가 null 값을 가질 수 있는 이유는 Java에서의 객체와 기본(primitive) 데이터 타입의 동작 방식의 차이 때문입니다.
기본 데이터 타입(primitive data type)은 메모리 상에서 직접 값을 저장하고, null 값을 가질 수 없습니다.
예를 들어, int, double, boolean과 같은 기본 데이터 타입은 해당하는 비트 패턴을 메모리에 저장하여 값을 표현합니다. 이러한 기본 데이터 타입은 값 자체를 저장하기 때문에 null 값을 가질 수 없습니다.
하지만, 객체(Object)는 참조 타입(reference type)으로 다루어지며, 메모리에서 객체의 데이터가 저장되는 위치를 가리키는 참조(reference)를 통해 접근합니다.
객체는 동적으로 메모리에 할당되며, null은 아무런 객체를 가리키지 않는 상태를 나타냅니다.
즉, 객체 변수가 null 값을 가지면 그 변수는 어떤 객체도 가리키지 않는 상태입니다.
null 값은 객체의 초기화되지 않은 상태를 나타내거나, 객체가 존재하지 않는 상태를 나타낼 때 유용합니다.
예를 들어, 객체를 생성하기 전에 변수를 선언하거나, 객체를 참조하지 않아야 할 때 null 값을 사용할 수 있습니다. 또한, null 값을 확인하여 객체의 존재 여부를 판단하고 해당 객체에 대한 작업을 수행할 수도 있습니다.
따라서, 객체는 null 값을 가질 수 있으며, 이는 객체 변수가 어떤 객체도 가리키지 않는 상태를 나타냅니다.
'Java' 카테고리의 다른 글
직렬화 (0) | 2023.10.03 |
---|---|
입출력(IO) 스트림 (0) | 2023.10.03 |
자주쓰는 Exception (0) | 2023.09.21 |
Iterator , 동등성비교(equals @Override) (0) | 2023.09.20 |
다형성 추상클래스와 인터페이스 (0) | 2023.09.17 |