java中手動釋放資源的先後順序

2021-08-19 21:59:50 字數 747 閱讀 6634

1、 流相關資源

流相關資源一般遵循:

1)先開後關,先開的輸入流,再開的輸出流,通過讀取輸入流寫入輸出流中,那麼應該先關輸出流,再關輸入流,但是一般關閉輸入輸出流操作都是在讀寫完成後的finally中執行的,所以即使先關輸入流,再關輸出流也不會任何問題,因為讀寫操作沒有進行了。

2)先關外層,再關內層。如bufferedinputstream包裝了乙個fileinputstream,那麼先

關bufferedinputstream,再關fileinputstream。但要注意的是由於一般處理流持有節點流引用,處理流都會在自己的close方法中去關閉節點流,因此我們只要關閉外層的處理流即可,如果多此一舉的關閉節點流反而會報錯。如bufferedinputstream包裝了fileinputstream,我們只要關閉bufferedinputstream即可

2、 jdbc相關資源

connection,preparestatement,resultset三個資源。這三個資源的獲取順序是:

先獲得乙個jdbc連線物件connection,再通過連線物件獲得乙個sql預處理物件preparestatement,如果是查詢的話最後還會通過preparestatement物件獲取乙個結果集resultset物件,關閉順序與獲取順序正好相反。先關resultset,再關preparestatement,最後關connection

請手動釋放你的資源

我從來不認為這個問題是個問題,直到昨天.昨天晚上的時候,我提交了乙個rfc,關於引入finally到php,實現這個功能的出發點很簡單,因為我看見不少人的需求,另外還有就是stas說,一直只看到討論,沒看到有人實現.於是我就給實現了.php在請求結束後會釋放所有的資源,所以我們沒有必要呼叫fclos...

Swift中的Class物件資源釋放

swift4 中對class的引用即為引用中,必須把所有的引用全部釋放才會完全釋放 如下例子中,reference1 初始化的person物件,然後將reference1賦值給reference2,reference3。此時三個宣告物件引用同乙個person的記憶體位址及資料,當釋放referenc...

簡單釋放程式中的資源到檔案

desc 將程式中的資源解壓 param1 in szrestype 資源型別 param2 in dwresid 資源id param3 in szfilename 資源解壓到此檔案 param4 in bfailifexists 為true時,如果szfilename檔案已經存在,則執行失敗,否...