<aside> 💡
프로그램에서는 변하지 않는 수도 필요하다. 예를 들어 원의 넓이를 구할 때 원주율을 3.14라고 정했다면 이 값은 변하지 않는 값이다. 이렇게 항상 변하지 않는 값을 ‘상수(constant)’라고 한다. 자바에서 상수는 다음처럼 final 예약어를 사용해 선언한다.
</aside>
final double PI = 3.14;
final int MAX_NUM = 100;
package chapter2;
public class Constant {
public static void main(String[] args) {
final int MAX_NUM = 100; // 선언과 동시에 초기화
final int MIN_NUM;
MIN_NUM = 0; // 사용하기 전에 초기화. 초기화 하지 않으면 오류 발생
System.out.println(MAX_NUM);
System.out.println(MIN_NUM);
// MAX_NUM = 1000; // 오류 발생. 상수는 값을 변경 할 수 없음
}
}
<aside> 💡
프로그램 내부에서 반복적으로 사용하고, 변하지 않아야 하는 값을 상수로 선언하여 사용하면 좋다. 상수로 선언해서 사용하면 값이 변해야 할 때 전부 수정 할 필요 없이 상수를 선언한 부분만 수정하면 된다.
</aside>
<aside> 💡
리터럴(literal)이란 프로그램에서 사용하는 모든 숫자, 문자, 논리 값(true,false)를 일컫는 말이다.
char ch = ‘A’;
int num = 10; —> ‘A’,10,3.14와 같은 문자와 숫자를
final double PI = 3.14; 리터럴, 혹은 리터럴상수 라고 한다.
</aside>
리터럴은 프로그램이 시작할 때 시스템에 같이 로딩 되어 특정 메모리 공간인 상수 풀에 놓인다.
자바에서 정수를 표현하는 메모리의 기본 크기는 4바이트이다. 이는 상수 풀에서도 마찬가지인데, 예를 들어 long num = 12,345,678,900; 은 4바이트 크기에 들어갈 수 없기 때문에 8바이트로 처리하라고 알려줘야 하기 때문에 식별자 L,L을 써주는 것이다.
실수도 마찬가지로 모든 실수 리터럴은 double형으로 처리되는데,
float PI = 3.14;는 double형 이고 변수 PI는 float형 이므로 값을 대입 할 수 없기 때문에 식별자 F,f를 사용 하는 것이다.