자바에는 final 제어자가 있다.이 final은 주로 파라미터에 붙여서 불변 값을 활용하는데 많이 사용하지만, 메소드와 클래스에도 붙을 수 있다.각각의 위치에 붙었을 때 final 제어자가 제한하는것은 아래와 같다. 1. 클래스 : final class는 다른 클래스에서 상속을 받지 못한다. 즉 클래스의 형태를 수정 할 수 없다.2. 메소드 : final method는 오버라이딩 하지 못한다. 즉 메소드의 동작을 수정 할 수 없다. (오버로딩은 아예 별도의 메소드를 만드는 것이므로 이것과는 상관 없다.)3. 변수 : 흔히 사용하는것과 같다. 최초에 값을 선언하고 나서는 수정 할 수 없다. static final 로 클래스 변수를 만들면 최초 한번 선언되고 나서는 서버가 재시작 될 때 까지 불변이고, 인..