當Objects處於方法的局部範圍時,我們應該在finally塊中引用Object爲null嗎?通過這樣做解決了哪些性能問題?我們應該在finally塊中分配本地對象引用爲null嗎?
代碼:
Map<String, Map<String, String>> getData(Map<String, String> params) {
StringBuilder query = new StringBuilder(); // Construct query using it
ResultSet rs = null;
try {
rs = DataUtil.getData(query);
while(rs.next) {
// store data in return Map
}
} catch(ConnectionException ce){
ce.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
} finally {
rs = null;
query = null;
}
}
這裏,騰出rs
和query
似乎沒有實現目的,他們是方法執行後垃圾回收自動有效。任何幫助都會很好。
你的對象的範圍是本地的...我不認爲它有任何區別...他們將準備好GC,只要你離開塊... – TheLostMind
它會讓你的代碼更難以閱讀性能沒有正面的區別。所以... – Kayaman
你說得對。設置本地聲明的引用變量爲null最終不會添加任何東西到性能或幫助垃圾回收AFAIK –