Effective Java中文版(第3版)精華心得筆記,最容易理解的筆記沒有之一
整理Effective Java心得筆記大全
這本Effective Java號稱java四大名著之一,由於這本書的寫作方式偏程式思維,其中用了很多形容詞還跳來跳去,常常提到一個概念就會請你參考某某小節,所以在學習時候會遇到很多困難,很難把每一小節完整吸收,讀完整個第章節還是會感覺零零碎碎沒有成就感。
技術能力的提升是需要環境以及機會,通常資深的工程師能看出你現在卡住的問題所在,因為他們也是過來人,如果在周遭環境有資深的同事、朋友、同學、老師甚至網友能夠給予指點,也就是有人帶,絕對可以快速升等免得走彎路。再來是機會,有些人工作好幾年一直都維護內部系統,線上用戶不到50個,做來做去也只是CRUD,真的也用不到太高深的設計,或著你所在的產業不是以技術輸出當作主要產品,自然也不會投資太多在技術部門上,有太多太多會阻礙你技術成長,要走技術這條路,如果可以請好好規劃在校後2年以及在職場的前3~5年,選擇讓自己卓越被看見,劈開前方的道路,成為全服最強工程師。
圖片取至於網路如有侵權請告知
Chapter 2: Creating and Destroying Objects
會把物件的生命週期創造和銷毀放在最前面的章節,可見這部分有多重要
- Effective Java Item1 以靜態工廠方法代替建構函式
- Effective Java Item2 建構函式參數過多可考慮使用建造器
- Effective Java Item3 使用私有建構函式或列舉實現單例
- Effective Java Item4 透過私有建構函式來禁止實例化
- Effective Java Item5 使用依賴注入優於硬連結資源
- Effective Java Item6 避免不必要的創建物件
- Effective Java Item7 移除不需要的物件引用
- Effective Java Item8 避免使用finalizers和cleaners
- Effective Java Item9 傾向使用try-with-resources勝過於try-finally
Chapter 3: Generic
- Effective Java Item10 覆寫equals方法時必須遵守一般契約
- Effective Java Item11 當覆寫 equals 方法時,總要覆寫 hashCode 方法
- Effective Java Item12 始終覆寫toString()方法
- Effective Java Item13 明智地覆寫clone()方法
- Effective Java Item14 考慮實作Comparable
Chapter 4: Methods
- Effective Java Item15 最小化類別與成員的可存取性
- Effective Java Item16 公開類別中應使用存取方法而非公開欄位
- Effective Java Item17 最小化可變性
- Effective Java Item18 用組合取代繼承
- Effective Java Item19 設計可繼承的類別,否則就禁止繼承
- Effective Java Item20 盡量使用介面,而非抽象類別
- Effective Java Item21 設計介面要有前瞻性
- Effective Java Item22 介面只能拿來定義型別,不要拿來存常數
- Effective Java Item23 偏好使用類別階層而非標籤類別
- Effective Java Item24 比起非靜態成員類型,更偏好靜態成員類型
- Effective Java Item25 將原始碼檔案限制為單一top-level的類別
Chapter 5: Design and Documentation
- Effective Java Item26 不要使用原型類型
- Effective Java Item27 消除unchecked警告
- Effective Java Item28 選擇lists優於arrays
- Effective Java Item29 優先使用泛型
- Effective Java Item30 優先使用泛型方法
- Effective Java Item31 使用有邊界的通配符提高API的靈活性
- Effective Java Item32 明智地結合泛型和可變參數
- Effective Java Item33 考慮使用類型安全的異質容器
建議每三個月~六個月閱讀一遍,一方面複習,一方面會發現這裡突然懂了,那裡突然通了,你的工作經驗閱歷提升,這本書就能幫你解答很多東西。為了能學以致用,每讀完一小節,可以review手上的專案進行小幅度調整(前提該功能有Unit test,並確保調整完不影響該功能),有問題可以提出來互相討論互相成長。
Read other posts