정수 타입은 숫자를 나타내는 타입으로, 메모리 크기와 표현 가능한 숫자의 범위에 따라 네 가지로 분류된다: byte, short, int, long. 각 타입의 메모리 크기와 표현 범위는 다음과 같다.
정수 타입의 분류
타입메모리 크기표현 범위
| byte | 1 byte | -128 (-2⁷) ~ 127 (2⁷ - 1) |
| short | 2 byte | -32,768 (-2¹⁵) ~ 32,767 (2¹⁵ - 1) |
| int | 4 byte | -2,147,483,648 (-2³¹) ~ 2,147,483,647 (2³¹ - 1) |
| long | 8 byte | -9,223,372,036,854,775,808 (-2⁶³) ~ 9,223,372,036,854,775,807 (2⁶³ - 1) |
(1byte는 8bit로, 표현범위는 2의 8승이다.)
long 타입 사용 시 주의점
long 타입의 숫자는 반드시 값 뒤에 **L**을 붙여야 한다. 이는 숫자 1과 혼동을 방지하기 위해 대문자 L을 사용하는 것이 권장된다.
long number = 3456789L;
1과 혼돈을 방지하기 위해 대문자L을 쓴다
정수 타입의 사용 예시
타입별 유효한 값의 할당

타입 범위를 벗어난 값의 할당

숫자 구분을 위한 언더바 사용

오버플로우와 언더플로우
작성한 코드에서 지정한 타입의 값이 그 타입의 표현범위를 넘어서는 경우 발생한다.
이는 에러가 안 나기때문에 더 큰 문제가 된다.
- 오버플로우
자료형이 표현할 수 있는 범위 중 최대값 이상의 값을 표현한 경우로,
표현범위를 넘어가면 앞에서 부터 다시 할당한다.(byte형일때 127부터 )
최소값부터 다시 시작한다
- 언더플로우
자료형이 표현할 수 있는 범위 중 최소값 이하의 값을 표현한 경우로,
반대로, 표현가능한 부분 맨 오른쪽에서( byte 형일때 -128) 부터 다시 할당한다.
최소값을 넘어가면 다시 최대값부터 시작한다.
