[Java] final, finally, finalize의 차이점

·2025년 9월 20일
0

Java

목록 보기
6/13

💡final

  • 변수, 메서드, 클래스에 사용될 수 있는 제어자
  • 변수에 사용 : 변수의 값이 변경될 수 없음을 의미(값을 한번만 할당 가능)
  • 메서드에 사용 : 오버라이딩 할 수 없음을 나타냄
  • 클래스에 사용 : 상속을 금지하는 역할
final int num = 10;
final class MyClass {...}
final void myMethod() {...}

💡finally

  • try-catch 블록과 함께 사용됨
  • 예외 발생 여부와 상관없이 항상 실행되는 코드
  • 주로 리소스 해제 및 정리 작업에 사용
try {
            int result = 10 / 0; // 예외 발생
            System.out.println(result);
        } catch (ArithmeticException e) {
            System.out.println("예외 발생!");
        } finally {
            System.out.println("finally block");
        }
  • 출력 결과 : 예외 발생!/n finally block

💡finalize

  • 객체가 가비지 컬렉터에 의해 소멸되기 직전에 호출되는 메서드
  • 객체의 리소스를 해제하거나 정리하는 작업에서 사용
  • 자바9부터 deprecated되어 더이상 사용되지 않는다.
public class FinalizeExample {
    public void finalize() {
        System.out.println("Finalize method is called.");
    }

    public static void main(String[] args) {
        FinalizeExample obj = new FinalizeExample();
        obj = null; // 객체에 대한 참조 제거
        System.gc(); // 가비지 컬렉터 실행 요청
    }
}
profile
배우고 기록하며 성장하는 백엔드 개발자입니다!

0개의 댓글