Final keyword 란?

Java에서는 불변성을 확보할 수 있도록 Final keyword를 제공하고 있다
클래스나 변수에 final을 붙이면 처음 정의된 상태가 변하지 않는 것을 보장한다는 의미다.
Java에서 변수들은 기본적으로 가변적인데 변수에 final 키워드를 붙여 참조값을 변경 못하도록
"불변성"을 확보할 수 있다.

 

Final keyword 종류

  • final class
    다른 클래스에서 상속하지 못한다.
  • final method
    다른 메서드에서 오버라이딩하지 못한다.
  • final variable
    변하지 않는 상수값이 되어 새로 할당할 수 없는 변수가 된다.

혼동할 수 있는 두 가지를 보자.

  • finally
    try-catch or try-catch-resource 구문을 사용할 때, 정상적으로 작업을 한 경우와 에러가 발생했을 경우를 포함하여 마무리 해줘야하는 작업이 존재하는 경우에 해당하는 코드를 작성해주는 코드 블록이다.
  • finalize()
    keyword도 아니고 code block 도 아닌 메서드이다.
    GC 에 의해 호출되는 함수로 절대 호출해서는 안 되는 함수이다.
    Object 클래스에 정의되어 있으며 GC 가 발생하는 시점이 불분명하기 때문에 해당 메서드가 실행된다는 보장이 없다.
    또한 finalize() 메서드가 오버라이딩 되어 있으면 GC가 이루어질 때 바로 Garbage Collecting 되지 않는다.
    GC 가 지연되면서 OOME(Out of Memory Exception)이 발생할 수 있다.

*GC : Garbage Collection

 

728x90

'추가 공부 > Java' 카테고리의 다른 글

[Java] Stack 사용방법  (0) 2024.11.19
[Java] UnsupportedClassVersionError  (0) 2024.11.13
[Java] Garbage Collection(GC)  (3) 2024.11.12
[JAVA] Generic  (1) 2024.11.09
[Java] Collection Framework  (0) 2024.11.07
개발자가 되고 싶은 곰