2013-05-02 92 views
1

我想編寫不泄漏的應用程序,所以我正在尋找避免這種情況的最佳實踐。對象良好實踐

我總是關閉我的結果集和連接。但是,我通常在完成它們後不會使我的對象無效,並將它們留給GC進行清理。

這是不好的做法?我應該在我使用它們時取消ArrayList和Interator嗎?

還有其他方法來處理對象以保持內存完好?

+1

看看http://stackoverflow.com/questions/449409/does-assigning-objects-to-null-in-java-impact-garbage-collection – Drogba 2013-05-02 03:04:02

回答

1

當你完成它們時,你不需要使局部變量無效:Java編譯器足夠聰明,能夠確定何時放棄該對象。另一方面,類成員變量需要以不同方式考慮:如果一個集合持有另一個對象內的對象,則在完成該集合後清除該集合可能是有意義的。只有當外部對象的生存期明顯長於其集合內對象的生存期時,這纔是重要的。否則,垃圾收集器將在沒有任何代碼幫助的情況下處理收集對象。

0

我建議閱讀Effective Java Item 6「消除過時的對象引用」。它討論了該問題的許多方面。但基本規則是排除對象引用應該是例外而不是規範。