Java の Finalize() メソッドとは何か、およびそれをオーバーライドする方法

Java No Finalize Mesoddotoha Heka Oyobisorewoobaraidosuru Fang Fa



Java は、システム リソースを効果的に管理するための優れた機能を開発者に提供します。このようなシナリオでは、「 ファイナライズ() 」メソッドが有効になり、ガベージ コレクターが特定のオブジェクトに対して実行される前にシステム リソースを解放します。ただし、「Java 仮想マシン (JVM)」では、オブジェクトごとに 1 回だけ「finalize()」メソッドを呼び出すことができます。

このブログでは、「finalize()」メソッドの使用とオーバーライドについて説明します。







Javaの「finalize()」メソッドとは何ですか?またそれをオーバーライドする方法は何ですか?

ファイナライズ() ”の方法” 物体 」クラスは、ガベージ コレクションに適したオブジェクトを削除する直前に、「ガベージ コレクター」によって呼び出され、クリーンアップ タスクが適用されます。



構文



保護されたボイドのファイナライズ ( ) 投げる





この構文では、「 保護された ” は、このメソッドがクラスおよびそのクラスの派生クラス内でのみアクセスできることを暗示するアクセス指定子です。

例 1: Java での「finalize()」メソッドの適用



この例は、「finalize()」メソッドの使用法を示しています。

パブリッククラス Finalize2 {
保護されたボイドのファイナライズ ( ) {
System.out.println ( 「これがファイナライズメソッドです!」 ) ;
}
パブリック静的ボイドメイン ( [ ] 引数 ) {
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 ( 「Object クラスの Finalize() メソッドの呼び出し」 ) ;
スーパーファイナライズ ( ) ;
} }
パブリック静的ボイドメイン ( [ ] 引数 ) 投げる {
ファイナライズ obj = new ファイナライズ ( ) ;
obj.finalize ( ) ;
} }

上記のコード ブロックによると、次のようになります。

  • 「」を指定してください ファイナライズ() ” メソッドを作成し、” を宣言します。 投擲可能 」はそれぞれ例外です。
  • の中に ' 試す ” ブロックで、記述されたステートメントを指定し、” で例外に対処します。 キャッチ ' ブロック。
  • の中に ' ついに ” ブロック、” 素晴らしい ”キーワードはオブジェクトクラスの”finalize()”メソッドを指します。これは、例外が発生した場合でも「finalize()」メソッドが確実に実行されるように、この特定のブロックに適用されます。
  • の ' 主要 」では、クラスオブジェクトを作成し、オブジェクトクラスの「finalize()」メソッドを「Finalize」クラスで指定・定義されているメソッドでオーバーライドします。

出力

この結果では、「finalize()」メソッドが正常にオーバーライドされたことがわかります。

結論

ファイナライズ() 」メソッドは、オブジェクトを削除する前に「ガベージ コレクター」によって呼び出され、「」メソッドを使用してオーバーライドできます。 素晴らしい 」というキーワード。このブログでは、Java での「finalize()」メソッドの使用とオーバーライドについて説明しました。