《Java編程思想(第4版)》讀書筆記

爲什麼看這本書?

Java 四大名著之一,看完《Effective Java》自然想看下這本書。

 

書的整體情況

900 多頁,書中的內容都是 Java 編程語言中的重難點集合。讀完本書,花了兩個星期, 10 幾個小時。

書提到了這些知識模塊:

  • 類與對象
  • 操作符
  • 執行流程的控制
  • 初始化與清理
  • 訪問權限控制
  • 複用類
  • 多態
  • 接口
  • 內部類
  • 對象持有與清理
  • 異常處理
  • 字符串
  • Class類與對象的介紹
  • 泛型
  • 數組
  • 容器
  • I/O
  • 枚舉
  • 註解
  • 併發
  • GUI


適合閱讀人羣

這本書不適合零基礎入門的朋友看。原因很簡單,一上來就看一門編程語言的重難點知識,要麼記不住,要麼理解不了。

有一定開發經驗的 Java coder,看了應該會有所收穫。


最大的感觸

  • 好書,還會二刷、三刷、四刷的書。示例代碼豐富,見解深刻。
  • 一開始我以爲這本書應該跟《Effective Java》差不多,抱着應該很快能看完的心態就開始了。結果不是那麼回,看着看着發現它裏面都是 Java 的重難點,想看懂一點都不輕鬆。
  • 書中提到了很多原理性的問題,並且多處與 C++ 等其他語言實現相同功能的對比,列出了好壞。在 Java 中能看到很多 C++ 的影子。
  • 泛型這章,讓我印象深刻,尤其提到了 Java 爲了保證移植性,是基於類型擦除實現的泛型,這種實現方式帶來了很多限制。如在編碼過程中,T 就可以理解爲一個 Object,無法顯式地調用 T 裏面的方法;C++ 可以。
  • 寫代碼要有種極客精神,追求那種極致。比如 Java 5 之前是沒有枚舉的,對於 Java 語言本身的發展是沒有什麼阻礙的,但是有了枚舉,就可以更加優雅乾淨地解決問題。還吸收了一些枚舉內置的方法,如何隨機獲取一個枚舉類型。
  • 書中講了很多 Java 限制,如註解不支持繼承、枚舉不支持繼承。以及這些限制對比其他編程語言,帶來好處與不足。
  • 書中也談到了性能優化,寫了測試代碼,通過結果給出了使用建議:不同容器適合的不同場景、對象創建銷燬帶來的性能影響、類的自動拆裝箱帶來的性能影響等...
  • GUI 這塊,提到了 awt 的槽糕設計,也讚了一下 swing,applet 基本也廢棄了。我個人觀點是能用 swing 開發出自己想要的小工具足矣,企業中已基本不用這塊技術。書中提到 Swing 天然支持鍵盤導航,我才知道我喜歡多年這個功能叫鍵盤導航,就是在軟件內不用鼠標可以完成所有操作。
  • 看到併發這塊,讓我想到一些問題,如何停掉一個線程?何謂阻塞?如何優雅停?如何強制停?如,如何讓下面線程停下?
new Thread(() -> {
    while(true) {
    }
}).start();
  • 併發這塊,沒啥可說的,書中已做推薦。

  • 我最近處理一些複雜的問題,看到書中提到了一個觀點"讓簡單的事情變得容易,讓困難的事情變得可行",很有感觸。思從深而行從簡,真正的高手能雲淡風輕地用最簡單的方法解決最複雜的問題。啥時候能把困難的事情,做到簡單易用,就能找到成就感了。
     

 

 


【Java面試題與答案】整理推薦

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章