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] Garbage Collection(GC) (3) | 2024.11.12 |
[JAVA] Generic (1) | 2024.11.09 |
[Java] Collection Framework (0) | 2024.11.07 |