아래의 변수 a와 b는 둘 다 똑같이 8byte의 메모리를 사용하게 된다. 데이터 타입(long)이 같기 때문이다.

  1. **long** a = 2147483647;
  2. **long** b = 1;

반대로 아래의 변수 a와 변수 b는 똑같은 수를 저장하고 있지만, 변수 b가 2배의 메모리를 사용한다. 데이터 타입이 다르기 때문이다.

  1. **int** a = 2147483647;
  2. **long** b = 2147483647;

<aside> 💡 즉! 어떤 숫자를 저장하느냐에 따라서 사용하는 메모리의 크기가 달라지는 것이 아니고, 어떤 데이터 타입으로 변수를 선언했느냐에 따라서 사용하는 메모리의 크기가 달라지는 것이다.

결과적으로 정수를 저장할 때는 int를 사용하면 된다.  int 형을 처리할 때 CPU의 처리속도가 빠르고, int는 충분히 큰 수를 표현할 수 있는 데이터 타입이기 때문이다.

</aside>

date type 메모리 크기 표현 가능 범위
byte 1byte -128 ~ 127
short 2byte -32,768 ~ 32,767
int 4byte -2,147,483,648~2,147,483,647
long 8byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807