Java的HttpURLConnecction的getInputStream是否需要close?
問題描述
RT,就醬Java的HttpURLConnecction的getInputStream是否需要close?
這個流是否是系統(tǒng)維護的?因為不是我打開的
問題解答
回答1:養(yǎng)成習(xí)慣所有不再用的InputStream和OutputStream都關(guān)掉就好了,不管API背后的實現(xiàn)有沒有自動幫你關(guān)掉。如果用Java 1.7+寫的話,用try-with-resource處理起來就非常簡單了:
try (InputStream in = urlConnection.getInputStream()) { ...} // 這里會自動調(diào)用 in.close();
類似場景還有:
JDBC的PreparedStatement、ResultSet等都實現(xiàn)了AutoCloseable接口,理論上只要Connection被close掉,由它生成的這些PreparedStatement、ResultSet等也會自動close掉,但強烈建議你產(chǎn)生這些資源的時候用try-with-resource來管理。
ServletRequest/ServletResponse中的getInputStream/getOutputStream等資源也是。
回答2:需要
在并發(fā)操作非常高的情況下, 如果你不關(guān)閉, 對系統(tǒng)資源的開銷會比較大.
相關(guān)文章:
1. mysql - 記得以前在哪里看過一個估算時間的網(wǎng)站2. python中merge后文件莫名變得非常大3. 希望講講異常處理4. css3 - 純css實現(xiàn)點擊特效5. docker start -a dockername 老是卡住,什么情況?6. javascript - 關(guān)于<a>元素與<input>元素的JS事件運行問題7. java - 為什么第一個線程已經(jīng)釋放了鎖,第二個線程卻不行?8. css3 - [CSS] 動畫效果 3D翻轉(zhuǎn)bug9. javascript - 如何將一個div始終固定在某個位置;無論屏幕和分辨率怎么變化;div位置始終不變10. 大家好,我想請問一下怎么做搜索欄能夠搜索到自己網(wǎng)站的內(nèi)容。
