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. docker 17.03 怎么配置 registry mirror ?2. javascript - sublime快鍵鍵問題3. javascript - immutable配合react提升性能?4. DADB.class.php文件的代碼怎么寫5. javascript - html5多個label中其中一個觸發(fā)change,如何判斷是哪一個出發(fā)了change6. phpstudy8.1支持win11系統(tǒng)嗎?7. mysql事務(wù)回滾定位8. css - 寫頁面遇到個布局問題,求大佬們幫解答,在線等,急!~9. 實現(xiàn)bing搜索工具urlAPI提交10. 配置Apache時,添加對PHP的支持時語法錯誤

網(wǎng)公網(wǎng)安備