Java 정수형(Integer Types) 크기, 범위, 메모리 사용 분석
Java는 다양한 데이터 크기와 메모리 요구 사항을 충족시키기 위해 네 가지 주요 정수형 타입을 제공합니다. 각각의 타입은 용도와 성능 측면에서 차별화되어 있으며, 적절한 타입 선택은 성능 최적화와 메모리 관리에 직결됩니다. 이 글에서는 byte, short, int, long의 구조적 차이, 범위, 내부 표현 방식까지 상세히 분석해보겠습니다.

목차
- Java 정수형 타입 개요
- byte: 최소 크기의 정수형
- short: 중간 크기의 정수형
- int: 가장 널리 쓰이는 기본형
- long: 대용량 정수 저장용
- 정수형 타입 간 비교
- 정수형 사용 시 유의사항 및 팁
1. Java 정수형 타입 개요
Java의 정수형(primitive integer types)은 부호가 있는 정수(signed integer)이며, 아래와 같은 네 가지 타입을 제공합니다:
byte: 1 byte (8비트)short: 2 byte (16비트)int: 4 byte (32비트)long: 8 byte (64비트)
모든 타입은 2의 보수(two's complement) 방식으로 음수를 표현합니다. 이 방식은 CPU 연산 효율성과 부호 일관성을 높이는 데 효과적입니다.
2. byte: 최소 크기의 정수형
byte는 가장 작은 정수형으로, 메모리를 아끼는 데 유리합니다.
- 크기: 8비트
- 범위: -128 ~ 127
- 주용도: 파일 I/O, 이미지 처리, 메모리 제한이 있는 디바이스
byte b = 100;
System.out.println(b); // 출력: 100
3. short: 중간 크기의 정수형
short는 byte보다 더 큰 범위를 다루면서도 int보다 메모리 절약에 용이합니다.
- 크기: 16비트
- 범위: -32,768 ~ 32,767
- 주용도: 대규모 배열 처리, 데이터 압축
short s = 32000;
System.out.println(s); // 출력: 32000
4. int: 가장 널리 쓰이는 기본형
대부분의 경우 기본 정수형으로 int가 사용됩니다. 자바의 기본 연산은 int를 기준으로 수행됩니다.
- 크기: 32비트
- 범위: -2,147,483,648 ~ 2,147,483,647
- 주용도: 일반 연산, 반복문, 인덱스 처리
int count = 1000000;
System.out.println(count); // 출력: 1000000

5. long: 대용량 정수 저장용
long은 정수형 중 가장 큰 범위를 가지며, 고정 소수점 처리나 시간 계산 등에서 자주 사용됩니다.
- 크기: 64비트
- 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
- 주용도: 밀리초 단위 시간, 대형 파일 처리, 고정밀 계산
long timestamp = System.currentTimeMillis();
System.out.println(timestamp);
6. 정수형 타입 간 비교
| 타입 | 크기 | 범위 | 용도 |
|---|---|---|---|
| byte | 8비트 | -128 ~ 127 | 메모리 절약 |
| short | 16비트 | -32,768 ~ 32,767 | 중간값 처리 |
| int | 32비트 | ±2.1B | 기본 연산 |
| long | 64비트 | ±9.2퀸틸리언 | 대용량 처리 |
7. 정수형 사용 시 유의사항 및 팁
int는 성능과 범위에서 균형 잡힌 선택입니다.- 정밀한 시간 계산에는
long을 사용하세요. byte와short는 자동 형변환 시int로 승격됩니다.- 숫자 리터럴 뒤에
L을 붙여야 long으로 인식됩니다. (예:long id = 10000000000L;) - 메모리 최적화가 중요한 경우 작은 타입을 적극 활용하세요.
'프로그래밍 언어 > Java' 카테고리의 다른 글
| Java 참조형(Reference Data Types)과 기본형(Primitive Types) 차이점 (0) | 2025.05.18 |
|---|---|
| Java 실수형 데이터 타입, float vs double (0) | 2025.05.06 |
| Java char 타입의 주요 사용 사례와 예제 (0) | 2025.04.22 |
| boolean 데이터 타입으로 자바 프로그램 논리 제어하기 (0) | 2025.04.16 |
| Java 참조 데이터 타입 정리: 객체, 배열, 인터페이스까지 (0) | 2025.04.10 |