Come principiante di java volevo chiedere se dovevo impostare un riferimento a un oggetto null o chiamare il metodo finalize in un progetto di grandi dimensioni?Imposta il riferimento all'oggetto su null o chiama il metodo finalize()?
Per esempio,
while(obj... some code here){
//code stuff
}
obj = null; // or obj.finalize();
Dal im fatto con la obj
e non ci sono più riferimenti ad esso che cosa devo fare con esso? impostalo su null o chiama finalize() ;?
Ho letto il java doc ma questo paragrafo The finalize method is never invoked more than once by a Java virtual machine for any given object.
mi ha confuso. Significa che anche se lo uso, non farà nulla a meno che GC non decida di farlo? Quindi, la mia decisione di impostare il obj
su null lo aiuterà?
Tutto ciò presupponendo che sia un progetto di grandi dimensioni e che l'ambito deve ancora terminare affinché GC possa deallocarlo da solo. Grazie.
Questo può aiutare a capire il metodo 'finalize' e GC: http://stackoverflow.com/questions/2506488/when-is-the-finalize-method-called-in-java – wassgren
Grazie per aver risposto wassgren, ho già letto i documenti java come dichiarato. Ma ci sono soluzioni fornite come [this] (http://howtodoinjava.com/2012/10/31/why-not-to-use-finalize-method-in-java/) che hanno forzato il metodo di finallize e in realtà hanno funzionato, e mi chiedevo cosa dovresti fare su un grande progetto. – Voqus
Non utilizzare mai il metodo ** finalize **. È totalmente imprevedibile. –