본문 바로가기

프로그래밍 언어/Java

Java 정수형 데이터 타입 정리: byte, short, int, long

Java 정수형 데이터 타입 정리: byte, short, int, long

Java의 정수형 데이터 타입은 크기와 표현 범위에 따라 네 가지로 구분됩니다: byte, short, int, long. 각각의 타입은 메모리 크기, 표현 범위, 사용 목적이 다르며, 이를 명확히 이해하는 것은 성능 최적화와 메모리 관리에 중요합니다. 이번 글에서는 단순한 설명을 넘어 각 타입의 실제 활용 상황, 장단점, 주의할 점까지 깊이 있게 다루겠습니다.

 

 

목차

  1. Java의 정수형 타입 개요
  2. byte 타입: 최소 메모리, 최대 효율
  3. short 타입: 메모리 절약용 중간형
  4. int 타입: 기본형으로의 활용
  5. long 타입: 대용량 수치 처리
  6. 정수형 타입 비교 표
  7. 실무에서의 정수형 타입 선택 가이드

 

1. Java의 정수형 타입 개요

Java에서 정수형 타입은 모두 2의 보수 방식을 사용하며, 부호 있는 정수를 표현합니다. 기본적으로 다음 네 가지 타입이 존재합니다:

  • byte: 1 byte (8 bits)
  • short: 2 bytes (16 bits)
  • int: 4 bytes (32 bits)
  • long: 8 bytes (64 bits)

주의: Java는 플랫폼에 관계없이 동일한 데이터 크기를 유지하는 고정 크기 타입을 제공합니다. (C언어와 차이점)

 

 

 

2. byte 타입: 최소 메모리, 최대 효율

byte 타입은 1 byte(8 bits) 크기로, -128부터 127까지의 정수를 표현할 수 있습니다. 주요 특징은 다음과 같습니다:

  • 메모리 절약에 탁월
  • 대용량 배열 처리 시 유용 (ex. 이미지 처리, 네트워크 프로토콜)
  • 자동 형변환에 주의 필요 (연산 시 int로 변환됨)
byte b = 100;
b = (byte)(b + 30); // 명시적 형변환 필요

 

 

 

3. short 타입: 메모리 절약용 중간형

short 타입은 2 bytes(16 bits) 크기로, -32,768부터 32,767까지 표현 가능합니다.
다음과 같은 상황에서 사용됩니다:

  1. 메모리 민감한 임베디드 시스템
  2. 대용량 데이터셋 처리 (ex. 대규모 센서 데이터)
  3. 자바에서 char(2 bytes)와 동일 크기 → 비트 연산 시 유용

Tip: CPU 연산 성능은 int에 최적화되어 있어 무조건 성능 개선되는 것은 아님.

 

 

 

4. int 타입: 기본형으로의 활용

int4 bytes(32 bits) 크기로, -2,147,483,648 ~ 2,147,483,647 범위를 표현합니다.

주요 특징:

  • Java에서 기본 정수형 타입 (리터럴 42는 자동 int로 간주)
  • 대부분의 연산, 루프 카운터, 인덱스 등에 사용
  • CPU와 JVM 모두 int에 최적화되어 속도, 메모리 균형 우수
int count = 100000;

 

 

 

 

5. long 타입: 대용량 수치 처리

long 타입은 8 bytes(64 bits) 크기로, -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 범위를 가집니다.

적절한 사용 상황:

  1. 큰 수 연산 (파일 크기, 시간 계산 등)
  2. Big Data, 고정밀 금융 계산
  3. 리터럴 끝에 L을 붙여야 함 (예: long num = 10000000000L;)

주의: 리터럴에 L을 붙이지 않으면 컴파일 오류 발생 가능.

 

 

 

6. 정수형 타입 비교 표

타입 크기 표현 범위 주요 용도
byte 1 byte -128 ~ 127 메모리 절약, 스트림, 배열
short 2 bytes -32,768 ~ 32,767 임베디드, 대규모 데이터
int 4 bytes -231 ~ 231-1 기본 정수 연산
long 8 bytes -263 ~ 263-1 대규모 수치 데이터

 

 

 

7. 실무에서의 정수형 타입 선택 가이드

어떤 상황에서 어떤 타입을 선택할지 헷갈린다면 아래 기준을 참고하세요:

  • 메모리가 극도로 제한된 경우: byte, short 적극 고려
  • 일반적인 경우: int 사용 (가장 효율적)
  • 대규모 데이터 처리, 파일 크기, 시간 계산: long 추천

팁: 성능보다 코드 가독성과 유지보수를 우선시한다면 int로 통일하는 것도 좋은 전략입니다.