Javaのfinalizeメソッドの使い方は何ですか?
Javaでは、finalize()メソッドは「終了メソッド」と呼ばれ、オブジェクトがガベージコレクトされる前にクリーンアップ操作を実行するために使用されます。これはObjectクラスのメソッドであり、したがってすべてのJavaオブジェクトがこのメソッドを使用できます。
finalize()メソッドを使用するには、次の手順に従う必要があります。
- クラス内でfinalize()メソッドをオーバーライドします。例えば:
@Override
protected void finalize() throws Throwable {
// 清理操作
// ...
super.finalize(); // 调用父类的finalize()方法
}
- 不要忘记在需要进行清理操作的地方调用对象的finalize()方法。例如:
MyClass obj = new MyClass();
// 使用obj对象
// ...
obj.finalize(); // 手动调用finalize()方法
Javaのガベージコレクションは、オブジェクトが破棄される前に自動的にfinalize()メソッドを呼び出し、クリーンアップを行います。したがって、通常はfinalize()メソッドを手動で呼び出す必要はありません。
Java 9ではfinalize()メソッドの使用はお勧めされていないです。なぜなら、性能問題を引き起こす可能性があるからです。リソースを解放しクリーンアップするためには、try-with-resources文を使用するか、明示的にクリーンアップメソッドを呼び出すことが推奨されています。