자바에는 final 제어자가 있다.
이 final은 주로 파라미터에 붙여서 불변 값을 활용하는데 많이 사용하지만, 메소드와 클래스에도 붙을 수 있다.
각각의 위치에 붙었을 때 final 제어자가 제한하는것은 아래와 같다.
1. 클래스 : final class는 다른 클래스에서 상속을 받지 못한다. 즉 클래스의 형태를 수정 할 수 없다.
2. 메소드 : final method는 오버라이딩 하지 못한다. 즉 메소드의 동작을 수정 할 수 없다. (오버로딩은 아예 별도의 메소드를 만드는 것이므로 이것과는 상관 없다.)
3. 변수 : 흔히 사용하는것과 같다. 최초에 값을 선언하고 나서는 수정 할 수 없다. static final 로 클래스 변수를 만들면 최초 한번 선언되고 나서는 서버가 재시작 될 때 까지 불변이고, 인스턴스 변수는 해당 인스턴스 객체가 생성 될 때마다, 지역변수는 해당 메소드가 호출 될 때 마다 최초로 한번 선언 하고 불변값이 된다.
'JAVA 웹 개발자 실전 면접문제' 카테고리의 다른 글
(DB문제) UNION ALL과 OUTER JOIN의 차이는? (0) | 2017.08.23 |
---|---|
(이론문제) 암호화 알고리즘에 대해 설명해보라 (0) | 2017.08.21 |
(경험문제) 당신이 겪은 가장 어려웠던 개발 경험은? (0) | 2017.08.16 |