해당 entity는 한 번만 할당될 수 있다.
public class Test {
private final int value;
public Test(int value) {
this.value = value;
}
...
}
여기서 final 멤버 변수는 한 번만 선언될 뿐, 이 클래스의 인스턴스들은 각기 다른 value 값을 가질 수 있다.
해당 데이터의 메모리 할당을 컴파일 시간에 한다. 동적 데이터와 달리, 프로그램 실행 직후부터 끝날 때까지 메모리 수명이 유지된다.
static final로 상수를 선언하면 인스턴스가 만들어질 때마다 새로운 메모리에 초기화하지 않고, 하나의 메모리 공간만을 사용할 수 있어 효율적이다.
만약 상수가 각 개체에 대해 다른 값을 가질 수 있는 경우, static으로 선언하지 않는다.
