자바에서 final, finally, finalize는 서로 다른 용도로 사용되는 제어자와 예약어입니다.
1.final
final은 변수, 메서드, 클래스에 사용될 수 있는 제어자입니다. final이 변수에 사용될 경우 변수의 값이 변경될 수 없음을 나타내며, 메서드에 사용될 경우 메서드를 오버라이딩할 수 없음을 나타냅니다. 또한 클래스에 사용될 경우 상속을 금지하는 역할을 합니다.
예시:
final int num = 10;
final class MyClass {...}
final void myMethod() {...}
2.finally
finally는 try-catch 블록에서 사용되는 예약어로, 예외 발생 여부와 관계없이 항상 실행되는 코드 블록을 나타냅니다. 예를 들어 try 블록에서 예외가 발생하더라도, 해당 예외와 관계없이 finally 블록이 실행됩니다.
예시:
try {
// 예외 발생 가능성이 있는 코드
} catch (Exception e) {
// 예외 처리
} finally {
// 예외 발생 여부와 관계없이 항상 실행되는 코드
}
3.finalize
finalize 메서드는 객체가 가비지 컬렉션에 의해 수거되기 전에 호출되는 메서드입니다. Finalize() 메서드는 일반적으로 객체의 자원 해제 등의 마무리 작업을 수행하는데 사용됩니다. 자바9부터는 deprecated되어 더 이상 사용되지 않습니다.
예시:
protected void finalize() throws Throwable {
// 객체 소멸 전에 필요한 처리
super.finalize();
}
'java(자바)' 카테고리의 다른 글
[java(자바)] 자바의 제어자 _디버깅의 눈물 (0) | 2023.02.25 |
---|---|
[java(자바)] final 키워드 _디버깅의 눈물 (0) | 2023.02.24 |
[java(자바)] 다형성 _디버깅의 눈물 (0) | 2023.02.24 |
[java(자바)] 상속 관계, 포함 관계(is-a, has-a) _디버깅의 눈물 (0) | 2023.02.24 |
[java(자바)] non-static 멤버와 static 멤버의 차이점 _디버깅의 눈물 (0) | 2023.02.23 |