💡final
- 변수, 메서드, 클래스에 사용될 수 있는 제어자
- 변수에 사용 : 변수의 값이 변경될 수 없음을 의미(값을 한번만 할당 가능)
- 메서드에 사용 : 오버라이딩 할 수 없음을 나타냄
- 클래스에 사용 : 상속을 금지하는 역할
final int num = 10;
final class MyClass {...}
final void myMethod() {...}
💡finally
- try-catch 블록과 함께 사용됨
- 예외 발생 여부와 상관없이 항상 실행되는 코드
- 주로 리소스 해제 및 정리 작업에 사용
try {
int result = 10 / 0;
System.out.println(result);
} catch (ArithmeticException e) {
System.out.println("예외 발생!");
} finally {
System.out.println("finally block");
}
- 출력 결과 : 예외 발생!/n finally block
💡finalize
- 객체가 가비지 컬렉터에 의해 소멸되기 직전에 호출되는 메서드
- 객체의 리소스를 해제하거나 정리하는 작업에서 사용
- 자바9부터 deprecated되어 더이상 사용되지 않는다.
public class FinalizeExample {
public void finalize() {
System.out.println("Finalize method is called.");
}
public static void main(String[] args) {
FinalizeExample obj = new FinalizeExample();
obj = null;
System.gc();
}
}