[問題] null 與 記憶體
我在網路上找到一段code
public void selectAll(Connection con, String tableName) throws SQLException {
String sql = "select * from " + tableName;
Statement stat = null;
ResultSet rs = null;
stat = con.createStatement();
rs = stat.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt("id") + "\t" + rs.getString("name"));
}
}
我想改為
public void selectAll(Connection con, String tableName) throws SQLException {
String sql = "select * from " + tableName;
Statement stat = con.createStatement;
ResultSet rs = stat.executeQuerty(sql);
while (rs.next()) {
System.out.println(rs.getInt("id") + "\t" + rs.getString("name"));
}
}
我在執行的時候,感覺並沒有差異,
但是我想了解一下,原本的寫法是不是對記憶體釋放比較友善?
因為我自己寫的程式常常跑一段時間後,佔用的記憶體越來越大,
懷疑是不是我都沒有適時指定為null?
可是這個只是一個方法,方法執行結束,
不是就應該會釋放記憶體了嗎?
有必要特別再針對方法內的變數指派null嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.252.180
※ 文章網址: https://www.ptt.cc/bbs/java/M.1485008200.A.305.html
推
01/21 22:26, , 1F
01/21 22:26, 1F
con使用完我會close 要用的時候再new
不過這在方法內 所以con的close不在這...
※ 編輯: storypp (114.35.252.180), 01/21/2017 23:13:31
→
01/21 23:22, , 2F
01/21 23:22, 2F
推
01/21 23:39, , 3F
01/21 23:39, 3F
→
01/22 00:00, , 4F
01/22 00:00, 4F
→
01/22 00:04, , 5F
01/22 00:04, 5F
→
01/22 00:05, , 6F
01/22 00:05, 6F
→
01/22 00:06, , 7F
01/22 00:06, 7F
→
01/22 00:09, , 8F
01/22 00:09, 8F
→
01/22 00:11, , 9F
01/22 00:11, 9F
→
01/22 00:12, , 10F
01/22 00:12, 10F
→
01/22 00:49, , 11F
01/22 00:49, 11F
→
01/22 00:49, , 12F
01/22 00:49, 12F
感謝大家的熱心回答,這樣看來我的想法應該沒問題,
結論就是 宣告的同時直接new 不需要先給null
方法結束時也不需要再指派null
※ 編輯: storypp (114.35.252.180), 01/22/2017 01:23:46
推
01/22 06:25, , 13F
01/22 06:25, 13F
→
01/22 08:39, , 14F
01/22 08:39, 14F
→
01/22 13:31, , 15F
01/22 13:31, 15F
→
01/22 13:32, , 16F
01/22 13:32, 16F
→
01/22 13:33, , 17F
01/22 13:33, 17F
推
01/25 11:31, , 18F
01/25 11:31, 18F
→
01/25 11:32, , 19F
01/25 11:32, 19F
java 近期熱門文章
PTT數位生活區 即時熱門文章