변수의 자료형은 여러 가지가 있다고 했었습니다.
코딩할 때 어떤 자료형을 사용할지는 그 변수에 담을 데이터의 크기에 따라 결정하면 됩니다.
각 자료형이 담을 수 있는 데이터의 크기는 다음과 같습니다.
byte : 1byte
short : 2byte
int : 4byte
long : 8byte
1byte=8bit 이고 각 자료형은 음수와 양수를 담을 수 있기 때문에
byte 타입을 예로 들면 2의 8제곱인 256가지 수를 표현할 수 있습니다.
가능한 범위는 -128~127이 됩니다.
각 자료형이 표현 가능한 범위를 넘어선 연산을 하게 되면 오버플로우가 발생하게 되는데 이 부분은 나중에 배우도록 하겠습니다.
담을 수 있는 범위를 정리해보면 다음과 같습니다.
byte : -128~127
short : -32768~32767
int : -2147483648~2147483647
long : -9223372036854775808~9223372036854775807
범위가 클수록 자료형이 차지하는 공간도 많아지기 때문에 필요하지 않으면 더 작은 자료형을 사용하는 것이 좋습니다.
다음 코드로 예를 들어 보겠습니다.
public class Variables_Extra {
public static void main(String[] args) {
byte b = 127;
short s = 32767;
int i = 2147483647;
long l = 9223372036854775807l;
System.out.println(b);
System.out.println(s);
System.out.println(i);
System.out.println(l);
i=i+1;
System.out.println(i);
}
}
위의 코드를 실행하면 결과는 다음과 같습니다.
각 타입의 변수에 그 변수에 넣을 수 있는 최댓값을 넣고 출력해보았습니다.
제대로 출력되는 것을 확인할 수 있습니다.
그 다음, 이미 최댓값인 127이 들어있는 변수 i에 1을 더해보았습니다.
출력해보면 이상한 128이 아닌 이상한 값이 들어 있는 것을 확인할 수 있습니다.
이것이 앞에서 말한 오버 플로우입니다.
보관할 수 있는 범위를 넘어서면 발생하게 됩니다.
일단은 이런 것이 있다는 것만 알아두고
이를 방지하기 위해서 필요한 타입의 변수를 적절히 사용하면 된다는 것만 알아두면 되겠습니다.
'Android > Java' 카테고리의 다른 글
자바(JAVA) - 값을 입력받고 사용하는 방법 (0) | 2015.12.29 |
---|---|
자바(JAVA) - 변수 자료형에 따른 연산 결과 (0) | 2015.12.28 |
자바(JAVA) - 변수에서의 여러 자료형들 (0) | 2015.12.23 |
JAVA - 변수의 개념 (0) | 2015.08.23 |
자바(JAVA) Hello World 출력 (0) | 2015.08.23 |