221022 - final / finally / finalize() 차이

Jongleee·2022년 10월 22일
1

TIL

목록 보기
85/576

final / finally / finalize() 차이

final

: 클래스, 메소드, 변수, 인자를 선언할 때 함께 사용되며 상태를 유지하려는 특징을 가짐.

  • final 변수 → 변경 X
  • final 메소드 → overriding X
  • final 클래스 → 상속 X

finally

: try-catch와 함께 사용되며 try-catch가 종료될 때 finally block이 항상 수행 됨.
finally block은 try block이 종료될 때 항상 실행 (catch가 없어도 finally block은 항상 실행)

finalize()

: Object 클래스에 선언된 protected 메소드이며 Object를 상속 받는 모든 객체는 finalize() 메소드를 가짐. Garbage collector가 어떤 객체를 참조하는 객체가 없다고 생각되면, 이 객체를 소멸시킴. 객체를 소멸시킬 때 finalize() 메소드 호출.

클래스를 정의할 때 finalize()를 오버라이드 할 수 있는데, 메소드 호출 시점이 Garbage collector에 의존적이기 때문에 생각했던 타이밍과 다를 수 있어 finalize()를 재정의하지 않는 것이 좋음.

0개의 댓글