final
변수를 상수화 시키는 키워드
한번 결정된 값은 메모리에 올라가 절대로 변경 될 수 없다.
한번만 초기화가 가능하다.
초기화 방법
1) 선언과 동시에 초기화
final int a = 4;
2) 선언 후 초기화
final int a;
a = 4;
위의 두 방법 모두 가능하나, 한번 초기화 후 변경 할수 없는 상수가 됨.
static
하나의 클래스에 대해 생성된 모든 인스턴스(객체)들이 공유하는 변수.
인스턴스마다 하나씩 가지는 것이 아니라, 메모리공간에 하나만 존재 한다.
클래스의 외부에서 접근이 가능한 변수 이며, 이를 위해서는 , public으로 선언되어야 한다.
보통 변수(인스턴스변수)는 인스턴스 생성시 메모리 공간이 할당되고 그 값이 초기화 되는것과 달리 static 변수는
인스턴스 생성 전에 메모리공간을 할당 받고, 값이 초기화 되어있어야 한다. 이와 같은 성질 때문에
생성자에서 static 변수를 초기화 해서는 안된다.
static final 변수
값이 변경되지 않으면서 참조만 되는 상수형 참조변수