Java의 finalize() 메서드는 무엇이며 이를 재정의하는 방법

Javaui Finalize Meseodeuneun Mueos Imyeo Ileul Jaejeong Uihaneun Bangbeob



Java는 개발자에게 시스템 리소스를 효과적으로 관리할 수 있는 훌륭한 기능을 제공합니다. 이러한 시나리오에서 ' 마무리() ” 가비지 수집기가 특정 개체에 대해 실행되기 전에 시스템 리소스를 해제하는 메서드가 적용됩니다. 그러나 'JVM(Java Virtual Machine)'은 개체당 한 번 'finalize()' 메서드를 호출할 수 있습니다.

이 블로그에서는 'finalize()' 메서드 사용 및 재정의에 대해 설명합니다.







Java 'finalize()' 메서드는 무엇이며 이를 재정의하는 방법은 무엇입니까?

마무리() ”의 방법 물체 ” 클래스는 가비지 수집에 적합한 개체를 삭제하기 직전에 “가비지 수집기”에 의해 호출되어 정리 작업을 적용합니다.



통사론



보호 무효 완료 ( ) 던질 수 있는





이 구문에서 ' 보호 ”는 이 메서드가 클래스 및 해당 클래스의 파생 클래스 내에서만 액세스될 수 있음을 의미하는 액세스 지정자입니다.

예제 1: Java에서 'finalize()' 메서드 적용



이 예제는 'finalize()' 메서드의 활용을 보여줍니다.

공개 클래스 Finalize2 {
보호 무효 완료 ( ) {
System.out.println ( '이것이 Finalize 메소드입니다!' ) ;
}
공공 정적 무효 메인 ( [ ] 인수 ) {
Finalize2 개체 = 새로운 Finalize2 ( ) ;
개체 = null;
System.gc ( ) ;
System.out.println ( '가비지 컬렉터가 호출되었습니다!' ) ;
} }

위의 코드 라인에서:

  • '를 적용 마무리() ” 선언문을 구성하는 “Finalize2” 클래스 내의 메소드.
  • 안에 ' 기본 ”, “Finalize2()” 생성자를 통해 클래스 객체를 생성합니다.
  • 이제 객체를 ' 없는 ' 값. 'null' 값을 가질 때 참조가 없으므로 가비지 수집에 적합합니다.
  • 그 후 ' System.gc () ” 메서드를 사용하여 가비지 수집기를 실행하여 “finalize()” 메서드를 호출합니다.

산출

여기서 “finalize()” 메소드가 정상적으로 호출되는 것을 확인할 수 있습니다.

예 2: Java 'finalize()' 메서드 재정의

물체 ” 클래스는 모든 Java 클래스의 상위 클래스에 해당합니다. 이 클래스에 있는 'finalize()' 메서드에는 구현이 없습니다. 그러나 클래스 정의에는 정리 활동이 있습니다. 따라서 이 메서드를 재정의하면 정의된 정리 작업이 수행됩니다.

공개 클래스 마무리 {
보호 무효 완료 ( ) 던질 수 있는 {
노력하다 {
System.out.println ( '클래스 finalize() 메서드' ) ;
}
잡다 ( 던지기 가능 제외 ) {
예외를 던지십시오;
}
마지막으로 {
System.out.println ( '객체 클래스의 finalize() 메서드 호출' ) ;
수퍼파이널라이즈 ( ) ;
} }
공공 정적 무효 메인 ( [ ] 인수 ) 던질 수 있는 {
obj 마무리 = 새로운 마무리 ( ) ;
obj.finalize ( ) ;
} }

위의 코드 블록에 따르면:

  • 지정 ' 마무리() ” 메서드를 호출하고 “ 던질 수 있는 ”예외, 각각.
  • '에서 노력하다 ” 블록에 명시된 진술을 명시하고 “ 잡다 ' 차단하다.
  • '에서 마지막으로 ” 블록, “ 감독자 ' 키워드는 개체 클래스의 'finalize()' 메서드를 가리킵니다. 예외가 발생하더라도 'finalize()' 메서드의 실행을 보장하기 위해 이 특정 블록에 적용됩니다.
  • 안에 ' 기본 ', 클래스 객체를 생성하고 객체 클래스의 'finalize()' 메서드를 'Finalize' 클래스에서 지정/정의된 메서드로 재정의합니다.

산출

이 결과에서 'finalize()' 메서드가 성공적으로 재정의되었음을 확인할 수 있습니다.

결론

마무리() ” 메서드는 개체를 삭제하기 전에 “가비지 수집기”에 의해 호출되며 “ 감독자 ” 키워드. 이 블로그에서는 Java의 'finalize()' 메서드 사용 및 재정의에 대해 설명했습니다.