Java7から"try-with-resources"構文が追加されました。 ファイルやDBアクセスしたあとのリソース解放を自動で行ってくれる大変便利な機能で、解放し忘れをなくし、コードをすっきりさせることができます。 ただし、書き方によってリソースが解放されないパターンがあったので紹介します。 具体的には以下のような場合です。 リソース解放の対象クラスをネストさせてインスタンス生成した場合、コンストラクタで例外が発生するとリソース解放されません。 File file = new File("out.txt"); // PrintWriterがインスタンス生成に失敗すると、BufferedWriter・FileWriterが解放されない try(PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))