클래스 + final = 다른 클래스에서 상속하지 못한다.
메소드 + final = 다른 메소드에서 오버라이딩 하지 못한다.
변수 + final = 변하지 않는 상수값이 되어 새로 할당할 수 없는 변수가 된다.
finally - 코드 블록
try-catch 또는 try-catch-resource 구문에서 정상적으로 작업을 한 경우(try)와 에러가 발생했을 경우(catch)를 포함해
마무리해줘야하는 작업이 존재하는 경우 작성해주는 코드 블록이다.
점유하고 있는 리소스를 해제하는 등 마무리에서 꼭 실행해줘야하는 코드가 포함된다.
finalize() - 메소드
GC에 의해 호출되는 함수로 절대 호출하면 안되는 함수이다.
Object 클래스에 정의되어 있다.
GC의 발생시점은 규칙적이지 않기에 해당 메소드가 실행된다는 보장이 없다.
finalize 메소드가 오버라이딩되어 있으면 GC가 이루어질 때 바로 Garbage Collecting이 되지 않아 OOME(Out of Memory Exception)이 발생할 위험이 있다.
'Language > Java' 카테고리의 다른 글
Java 기본 - 접근자 (0) | 2023.06.30 |
---|---|
Java 기본 - 오버라이딩 오버로딩 (0) | 2023.06.29 |
Java 기본 - 제네릭 Generic (0) | 2023.06.27 |
Java 기본 - Annotation (0) | 2023.06.26 |
Java 기본 - Collection (0) | 2023.06.23 |