Mingyu Kim

정수 타입

소수점이 없는 숫자를 저장하는 타입

1. 정수 타입의 종류와 범위

메모리 사용 크기와 저장되는 값의 범위에 따라 총 5가지 타입이 있다. 모든 타입은 부호가 있는(Signed) 정수이며, 기본적으로 2진수 보수법을 사용한다.

타입 메모리 크기 저장 가능 범위 (대략) 비고
byte 1 byte (8 bits) -128 ~ 127 데이터 전송, 이미지 처리 등
short 2 bytes (16 bits) -32,768 ~ 32,767 C언어와의 호환성 (잘 사용 안 함)
char 2 bytes (16 bits) 0 ~ 65,535 유니코드(문자) 저장용 (음수 불가)
int 4 bytes (32 bits) 약 -21억 ~ 21억 정수 연산의 기본 타입
long 8 bytes (64 bits) 약 -922경 ~ 922경 아주 큰 숫자를 다룰 때 사용

2. 리터럴(Literal) 작성법

코드에서 직접 입력하는 값을 ‘리터럴’이라고 한다.

3. long 타입 주의사항

자바 컴파일러는 기본적으로 정수 리터럴을 int 타입으로 간주한다. int 범위를 벗어나는 큰 숫자를 long에 저장할 때는 숫자 뒤에 L(또는 l)을 반드시 붙여야 한다.

long balance = 3000000000L; // L이 없으면 컴파일 에러 발생

4. 정수 오버플로우와 언더플로우

타입이 허용하는 최소값보다 작아지거나(언더플로우), 최대값보다 커지면(오버플로우) 엉뚱한 값(최소값이나 최대값의 반대편)이 출력된다.