差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
java:basic:memoryleakwithproperties [2013/02/24 23:06]
tony
java:basic:memoryleakwithproperties [2017/03/28 22:24]
tony
行 1: 行 1:
 {{tag>​java}} {{tag>​java}}
 ====== 使用Properties類別的Memory Leak ====== ====== 使用Properties類別的Memory Leak ======
-使用Properties類別來儲存組態設定是非常方便的事情。即使是知名java語言教學,在建立檔案串流物件上,也常常忘記關閉它而造成記憶體遺失好加在的是,這樣的錯誤可以find bug工具程式去發現。首先讓我明問題所在:+===== Problem ===== 
 +使用Properties類別來儲存組態設定是非常方便的事情。在某個知名java教學網站中,在使用Properties建立串流物件上,也有因忘記關閉它而造成Leak舉例來:
 <code java> <code java>
  private void load(){  private void load(){
行 20: 行 21:
  }  }
 </​code>​ </​code>​
-上面程式碼問題就在於**FileInputStream**與**FileOutputStream**建構後,完全沒做close的動作。相信在執行多次後,應會開始出現效能下降或根本無法存取的問題。修改方法也相當簡單:+上面程式碼問題就在於**FileInputStream**與**FileOutputStream**建構後,沒做close ​stream的動作。在執行多次後,應會開始出現效能下降或根本無法存取的問題。(可以透過findbug去檢查出來) 
 +===== How to? ===== 
 +修改方法也相當簡單:
 <code java> <code java>
  private void close(Closeable closable){  private void close(Closeable closable){