1. ホーム
  2. java

[解決済み] Javaでは、`final`、`finally`、`finalize`というキーワードはどのような目的で使われるのでしょうか? [クローズド]

2023-06-24 09:36:58

質問

Javaでは、どのような目的でキーワード final , finallyfinalize を満たすか?

どのように解決するのですか?

最終

final は、変数に "変更不可" をマークするために使用できます。

private final String name = "foo";  //the reference name can never change

final はメソッドを "overrideable" でないようにすることもできます。

public final String toString() {  return "NULL"; }

final はまた、クラスを継承できないようにすることもできます。

public final class finalClass {...}
public class classNotAllowed extends finalClass {...} // Not allowed

ついに

finally は try/catch 文の中で を実行します。

lock.lock();
try {
  //do stuff
} catch (SomeException se) {
  //handle se
} finally {
  lock.unlock(); //always executed, even if Exception or Error or se
}

Java 7 では resourcesステートメントで新しい試み を明示的または暗黙的に実装したリソースを自動的に閉じるために使用することができます。 java.io.Closeable または java.lang.AutoCloseable。

ファイナライズ

finalize は、オブジェクトがガベージコレクションされるときに呼び出されます。 これをオーバーライドする必要はほとんどありません。 例を挙げます。

protected void finalize() {
  //free resources (e.g. unallocate memory)
  super.finalize();
}