본문 바로가기

Programming/Java

Final, Finally, Finalize 비교

728x90

Final, finally, finalize는 모두 자바에서 사용되는 키워드이지만, 각각 다른 역할을 합니다.

 

Final

Final은 변수, 메소드, 클래스에 사용할 수 있으며, 다음과 같은 의미를 가집니다.

  • 변수 : 변수의 값을 변경할 수 없음을 의미합니다.
  • 메소드 : 메소드의 오버라이딩을 금지함을 의미합니다.
  • 클래스 : 클래스의 상속을 금지함을 의미합니다.

 

Finally

Finally는 try-catch 문에서 사용할 수 있으며, 예외 발생 여부와 상관없이 항상 실행되는 블록입니다. 보통, 리소스 해제나 데이터베이스 연결 종료와 같은 마무리 작업을 수행하는 데 사용됩니다.

 

Finalize

Finalize는 Object 클래스에 정의된 메소드로, 객체가 Garbage Collector에 의해 수거될 때 자동으로 호출되는 메소드입니다. 보통, 객체가 사용한 리소스를 해제하거나 파일을 닫는 등의 마무리 작업을 수행하는 데 사용됩니다.

 

요약하면, Final은 변수, 메소드, 클래스에 사용하여 값을 변경, 오버라이딩, 상속을 금지하는 키워드이고, Finally는 예외 발생 여부와 상관없이 항상 실행되는 블록으로 마무리 작업에 사용됩니다. Finalize는 Garbage Collector에 의해 객체가 수거될 때 자동으로 호출되는 메소드로 객체의 마무리 작업에 사용됩니다.

728x90