아래의 변수 a와 b는 둘 다 똑같이 8byte의 메모리를 사용하게 된다. 데이터 타입(long)이 같기 때문이다.
long** a = 2147483647;long** b = 1;반대로 아래의 변수 a와 변수 b는 똑같은 수를 저장하고 있지만, 변수 b가 2배의 메모리를 사용한다. 데이터 타입이 다르기 때문이다.
int** a = 2147483647;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 |