final
final 키워드는 불변을 의미함
final 이 붙은 데이터를 변경하려하면 컴파일 에러가 발생
final 변수
final 키워드를 변수 선언 시 앞에 붙여 사용
한 번 초기화하면 이후 변경이 불가능
메서드 파라미터에 final 키워드를 붙일 시, 해당 메서드 내에서 변경이 불가능
final 멤버 변수
final 멤버 변수 선언 시, 이후 메서드로 변경이 불가능
반드시 생성자에서 초기화하거나, 필드에서 직접 초기화해야함
final 멤버 변수를 필드에서 초기화할 경우 모든 인스턴스가 같은 불변 값을 사용하는데, 인스턴스마다 갖고 있게 되므로 메모리 낭비가 발생하여 static final 로 선언해야한다.
final 참조 변수
final 키워드를 참조 변수에 사용할 시, 해당 참조 변수가 다른 객체를 참조할 수 없다.
그러나, 해당 참조 변수가 참조하고 있는 객체 내부의 값은 변경가능하다.