C++では、コンストラクタでリソースを取得してデストラクタで解放します。Javaでの徹底したリソース管理
したがって、関数の途中で例外が発生した場合、リソースリークやロックミューテックスなどはありません。
AFAIK Javaクラスにはデストラクタがありません。では、Javaでリソース管理をどのように行うのでしょうか。例えば
:doSomethingのが例外をスローした場合
public int foo() {
Resource f = new Resource();
DoSomething(f);
f.Release();
}
どのようにして、リソースを解放することができますか? try \ catchブロックをコードの上に置くことはできません。
:Javaの7に関連して、より最近の質問はこの質問を参照してください? – Spoike
インターネット上のすべて: http://www.google.dk/search?q=java+closures – svrist