final, finally, finalize

강준우·2023년 1월 15일
0

java의 final, finally, fianlize는 전혀 다른 개념이지만 이름 때문에 혼동이 발생할 수 있다.

final 키워드


JAVA final 키워드
final 키워드는 클래스, 메서드, 변수를 선언할 때 사용하여 각각의 상태를 일관되게 유지할 수 있는 속성을 부여한다.

finally 키워드


finally 키워드는 try-catch문에 사용되어 try block이 종료될 때 항상 실행되는 code block을 만든다.

try {
  System.out.println("try block");
  throw new Exception();
} catch (Exception e) {
  System.out.println("catch block");
} finally {
  System.out.println("finally block");
}
>>> 출력 결과 : 
try block
catch block
finally block

finalize 메소드


finalize()는 Object클래스에 선언된 protected 메소드로 모든 객체가 사용이 가능하다. Garbage Collector가 어떤 객체를 참조하는 객체가 없다고 생각되면, 객체를 소멸시킬 때 finalize() 메소드를 호출한다.

클래스를 정의할 때 finalize()를 재정의 하여 특정 자원을 함께 소멸해주도록 구현할 수도 있다. 하지만 메소드 호출 시점이 Garbage Collector에 의존적이기 때문에 생각했던 순서로 동작하지 않을 가능성이 크므로 재정의 하지 않는 것이 좋다.

profile
강준우

0개의 댓글

관련 채용 정보