In C++ abbiamo lo schema Acquisizione risorse (RAII), che semplifica notevolmente la gestione delle risorse. L'idea è di fornire un oggetto di avvolgimento per qualsiasi tipo di risorse. Il distruttore dell'oggetto wrapping è quindi responsabile del rilascio delle risorse quando esce dal suo ambito. Ad esempio:È possibile la gestione delle risorse in C++ in Java
{
auto_ptr<int> smartPointer = new int;
// some other code
} // the memory allocated for the int is released automatically
// by smartPointer's destructor
L'utilizzo più comune sono i puntatori intelligenti. Ma ci sono molti altri tipi di risorse (file, mutex, socket, ecc.) Che possono essere gestite esattamente nello stesso modo.
In Java non è necessario preoccuparsi della gestione della memoria. Ma restano tutti gli altri tipi di risorse. C'è il blocco , infine, ma il suo utilizzo è piuttosto scomodo, specialmente quando si possono lanciare molte eccezioni.
Quindi, la mia domanda è se esiste un modello Java che fornisce funzionalità equivalenti a C++ RAII? In caso contrario, si prega di condividere le migliori pratiche in quest'area (invece che alla fine, a meno che non sia usato in modo sofisticato).
Vedere questa domanda: http://stackoverflow.com/questions/194261/raii-in-java-is-resource-disposal-always-so-ugly-was-i-had-a-dream – Eclipse
Anche: http : //stackoverflow.com/questions/477399/does-java-support-rai-deterministic-destruction – Eclipse
"che semplifica enormemente la gestione delle risorse" mi stai prendendo in giro? – hasen