Effective Java 第二章

避免創建不必要的對象

優先考慮使用基本類型而不是裝箱類型,要當心無意識的自動裝箱

消除過期對象的引用

一旦對象引用過期,要清空這些引用
緩存是內容泄漏的另一個來源,適當的時候使用WeakHashMap代表緩存(只有要緩存項的生命周期由外部引用而不是由值來決定時,才有用.)
監聽器和其他回調是內存泄漏的第三個來源,例如你實現了一個API,客戶端在這個API在哦好嗯注冊回調,卻沒有顯式地取消注冊,除非你采取某些動作,否則它們就會聚集.確保回調立即被當作垃圾回收就是只保存它們的弱引用.

避免使用終結方法

終結方法鏈不會被自動執行,如果類有終結方法,并且子類覆蓋了終結方法,子類的終結方法必須手動調用超類的終結方法.

@Override protected void finalize() throws Throwable{
          try{
                ...//finalize subclass state
          }finally{
                super.finalize();
          }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第2章 創建和銷毀對象 第1條:考慮用靜態工廠方法代替構造器 靜態工廠方法,只是一個返回類的實例的靜態方法。 示例...
    進擊的小鹿閱讀 386評論 0 1
  • 創建和銷毀對象時 1. 考慮用靜態工廠方法代替構造器 1.1 優點 靜態工廠方法有名稱 不必重復創建新對象 可以返...
    ktdroid閱讀 261評論 0 0
  • 第一條:考慮靜態工廠方法代替構造器 靜態工廠方法的優勢: 有名稱(例子中的probablePrime) 不必每次調...
    SherlockMoon閱讀 318評論 0 0
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • 中國人的性情是總喜歡調和折中的,譬如你說,這屋子太暗,須在這里開一個窗,大家一定不允許的。但如果你主張拆掉屋頂他們...
    什么都要取名字閱讀 267評論 0 0