final/finally/finalize)
final 키워드란?
- 변수나 메서드 또는 클래스가 변경 불가능하도록 만듦
- 원시 변수에 적용 시, 해당 변수의 값이 변하지 않는 상수 값이 되어 새롭게 값을 할당할 수 없으모 변경이 불가능함
- 참조 변수에 적용 시, 참조 변수가 힙 내의 다른 객체를 가리키도록 변경할 수 없음
- 메서드에 적용 시, 자식 클래스에서 해당 상위 클래스의 메서드를 오버라이드할 수 없음
- 클래스에 적용 시, 해당 클래스의 하위 클래스를 정의할 수 없어 다른 클래스가 상속받지 못하게 됨
finally 키워드란?
- try/catch 블록이 종료될 때 항상 실행될 코드 블록을 정의하기 위해 사용함
- 예외가 발생하더라도 항상 실행되므로 종종 뒷마무리 코드를 작성하는데 사용
- try와 catch 블록 다음과 통제권이 이전으로 다시 돌아가기 전 사이에 실행됨
finalize() 메서드란?
- Garbage Collector가 더 이상 참조가 존재하지 않는 객체를 메모리에서 삭제하겠다고 결정하는 순간 호출됨
- Object 클래스의 finalize() 메서드를 오버라이드해서 파일 닫기, 자원 반환 등의 맞춤별 GC를 정의할 수 있음
'Tech Interview > Language' 카테고리의 다른 글
[Language] 오버라이딩 vs 오버로딩 (0) | 2024.03.20 |
---|---|
[Language] 인터페이스 vs 추상 클래스 (0) | 2024.03.19 |
[Language] non-static vs static (0) | 2024.03.18 |
[Language] Java 접근 제어자 (0) | 2024.03.18 |
[Language] 문자열 클래스 (0) | 2024.03.12 |