static
- "고정된"이라는 의미
- 객체 생성 없이 사용할 수 있는 필드와 메소드를 생성하고자 할 때 활용
final
- "최종적인"이라는 의미
- 해당 변수는 값이 저장되면 최종적인 값이 되므로, 수정이 불가
- 변수선언시 초기화 또는 생성자를 통한 초기화가 무조건 필요
- 생성자를 통한 초기화는 객체마다 다를 수 있음으로 final 자체만으로는 상수를 의미할 수 없음
static final
- "고정된 + 최종적인"이라는 의미
- PI 값을 생각하면됨(3.141592...) 불변의 값임
- 변순 선언시 초기화가 무조건 필요