Java finallyとfinalize は文字は似ているが挙動は全然違う

finally

finallyはtryと一緒に使います。tryブロック中でExceptionが発生しても必ずfinallyブロックは実行されるというものです。

実際に記載するとこのようになります。

public String tryCatchTest(){

  String nullString = null;

  try{

    System.out.println("do try");

    //NullPointerException
    nullString.toString();

    return "return try";

  }catch(Exception e){

    System.out.println("do catch");
    return "return catch";

  }finally{

    System.out.println("do finally");

  }
}

上記コードを実行すると、次のようなコンソール出力になります。

do try
do catch
do finally
return catch

finallyはファイルをクローズするときによく使われました。ファイルをオープンしたらクローズする必要がありますが、処理中にExceptionが発生して処理が終了してしまうとクローズ出来ないことがあるためです。

Java7以降ではtry-with-resourcesという便利な機能があるので、あまり使われなくなっています。

Javaでtry-catch文を使う方法
tryはこのように書きます。 try {   処理 } catch (Exception e) {   例外処理 } 例...

finalize

finalizeはメソッドです。ガベージコレクション実行時に呼び出されます。しかし、Java9で非推奨(@Deprecated)になりました。

これは「ガベージコレクションはプログラマに意識させないようにする」というJavaの思想に基づくものとも考えられます。

Java コンストラクタ/デストラクタとガベージ・コレクションの関係
Javaのコンストラクタとデストラクタ(的なもの)の紹介をします。 デストラクタを理解するにあたり、Javaのガベージ・コレクションの...

参考

Object (Java SE 9 & JDK 9 ) – Oracle