Cでは+ リソース取得が初期化(RAII)パターンで、リソース管理が大幅に簡素化されています。この考え方は、あらゆる種類のリソースに対していくつかのラッピングオブジェクトを提供することです。ラッピングオブジェクトのデストラクタは、その範囲外になったときにリソースを解放する役割を担います。例:JavaではC++のようなリソース管理が可能です
{
auto_ptr<int> smartPointer = new int;
// some other code
} // the memory allocated for the int is released automatically
// by smartPointer's destructor
最も一般的な使用法はスマートポインタです。しかし、他の多くの種類のリソース(ファイル、mutex、ソケットなど)がまったく同じ方法で管理できます。
Javaでは、メモリ管理を煩わせる必要はありません。しかし、他のすべてのタイプのリソースが残っています。 、最終的にはブロックですが、多くの異なる例外がスローされる可能性がある場合は、その使用法はかなり不便です。
私の質問は、C++ RAIIと同等の機能を提供するJavaパターンがあるかどうかです。そうでない場合は、この分野でのベストプラクティスを共有してください(洗練された方法を使用しない限り、最終的にではなく)。
この質問を参照してください:http://stackoverflow.com/questions/194261/raii-in-java-is-resource-disposal-always-so-ugly-was-i-had-a-dream – Eclipse
また:http ://stackoverflow.com/questions/477399/does-java-support-raii-deterministic-destruction – Eclipse
"リソース管理を非常に簡素化する"あなたは私を驚かせていますか? – hasen