Language/Java
Java 기본 - final 키워드
레이튼
2023. 6. 29. 14:04
클래스 + final = 다른 클래스에서 상속하지 못한다.
메소드 + final = 다른 메소드에서 오버라이딩 하지 못한다.
변수 + final = 변하지 않는 상수값이 되어 새로 할당할 수 없는 변수가 된다.
finally - 코드 블록
try-catch 또는 try-catch-resource 구문에서 정상적으로 작업을 한 경우(try)와 에러가 발생했을 경우(catch)를 포함해
마무리해줘야하는 작업이 존재하는 경우 작성해주는 코드 블록이다.
점유하고 있는 리소스를 해제하는 등 마무리에서 꼭 실행해줘야하는 코드가 포함된다.
finalize() - 메소드
GC에 의해 호출되는 함수로 절대 호출하면 안되는 함수이다.
Object 클래스에 정의되어 있다.
GC의 발생시점은 규칙적이지 않기에 해당 메소드가 실행된다는 보장이 없다.
finalize 메소드가 오버라이딩되어 있으면 GC가 이루어질 때 바로 Garbage Collecting이 되지 않아 OOME(Out of Memory Exception)이 발생할 위험이 있다.