상수를 표현하는 방법은
int num=1+2;
System.out.println(1.2+3.4);
이렇게 사용해서 표현할 수 있습니다.
여기서 상수는 총 네번, 1,2,1.2,3.4 가 쓰였습니다.
상수도 또한 변수처럼 메모리 공간에 저장이 됩니다. 대신 저장된 값의 변경이 불가능합니다.
상수의 특징은
#이름이 없다.
#이름이 없으므로 메모리에 저장된 상수의 값을 변경시킬 수 없다.
이렇게 알 수 있습니다.
상수는 선언된 값에 맞는 가장 작은 자료형(short, byte 등)에 맞춰서 저장되지 않을까도 생각이 들수도 있습니다만...
기본적으로 모든 정수형 상수는 int, 실수형 상수는 double형으로 표현, 저장됩니다.
그럼 10000000000 등 int의 범위값에 넘어가거나 12.34처럼 float형에 저장해야 되는 경우는 오류가 발생할까요?
public class SuffixConst {
public static void main(String[] args) {
// TODO Auto-generated method stub
double e1 = 7.125;
float e2 = 7.125F;
long n1 = 10000000000L;
long n2 = 150;
System.out.println(e1);
System.out.println(n1);
}
}
결과
7.125
10000000000
오류가 나지 않고 제대로 출력된 이유는
자동으로 형 변환을 해주기 때문입니다.
'Programming > JAVA' 카테고리의 다른 글
4-1 자바에서 제공하는 이항 연산자들 (0) | 2018.08.26 |
---|---|
3-2 자료형의 변환 (0) | 2018.08.26 |
2-3 실수 표현방식의 이해 (0) | 2018.08.17 |
2-2 정수 표현방식의 이해 (0) | 2018.08.17 |
2-1 변수의 이해와 활용 (0) | 2018.08.16 |