又一次,或者準確地說,第三次讀完了《Java程式設計思想》,合上書,我陷入沉思之中,這本書為什麼值得我一而再,再而三地去讀它呢?而且,似乎每遍重讀,似乎總有些新的收穫。我盡我所能來闡述原因,希望在本文結束之時,我們共同擁有一個滿意的答案。
為什麼這本書值得讀?
為什麼是這本書,而不是其他書?先賣個關子,中學的時候有一個奇怪的現象,有的老師,再聽他講課的時候,沒覺得難,但是,聽完之後,卻發現已經把一個很難的問題在不知不覺之中搞明白了。現在想想,這其實就是大師的能力,他可以化繁為簡,把複雜的問題用簡單的語言解釋清楚。而此書的作者Bruce Eckel就是當之無愧的大師,他擁有豐富的Java教學經驗,並且對Java有獨到的見解,並且對Java的許多設計提出了問題和建議。
這本書獨特的地方可以歸結為以下幾個面向:
每次一小步。每次只介紹一個知識點,在確保讀者能夠掌握之後,再介紹新的知識點。如此,讀者理解起來更加容易,也更有成就感,同時也不會因為眾多糾纏不清的知識點而迷惑,這就是此書中文版厚達880頁的原因。
每個知識點都有對應的可編譯執行的程式碼範例。讀者可以自己運行,加深理解。當有疑問時,也可以透過修改代碼,自我驗證,在不知不覺中得到提升。
採用測試框架展示程式輸出。有以下優點:
培養讀者對測驗的重視,在實際工作中,許多初學者容易忽略測驗的重要性。
培養讀者去寫出可測試的程式碼,例如緊密耦合等,都會導致程式很難測試。
培養讀者如何寫測試框架,這對工作中寫單元測試和其他測試都很有幫助。
要修改程式時,例如重構,可以透過測試框架來確保程式的正確性。
範例中運用眾多設計模式。關於設計模式的重要性,相信大家都知道,只是物件導向設計的基本功,結合實際的例子來學習,可以說是一舉兩得。
有些功能,有很深入的探討。例如泛型,透過與C 的對比,介紹了設計想法和優缺點。
學習的過程
在Java Performance的開頭,作者認為,要成功地調優Java效能,你需要經歷三個階段:
我不知道我要知道什麼。也就是說,在解決一個問題是,你不知道你需要知道什麼知識和方法才能解決問題。
我知道我要知道什麼。你知道你要了解哪些重要的東西才能解決問題,但你還沒有研究過那些重要內容的細節。
我已經知道我需要知道的了。簡而言之,你了解並理解了所有的細節。
我認為,還要加上一個階段:
我質疑並改進我已經知道的。對於我所掌握的知識和細節,我會持懷疑的態度問自己,為什麼要怎麼做才能解決問題?怎麼做有什麼優缺點?有沒有其他的方法,更好的方法?
你會發現,我讀《Java程式設計思想》的經驗完整得重現這四個階段:
未讀之前,我不知道要知道什麼才能用好Java。
一遍之後,我知道我要理解面向對象,異常,並發,泛型,IO等才能用好Java。
兩次之後,我了解所有的技術細節。
三次時,我開始評估並反思所有的技術細節,以及它們從何而來,為什麼成為現在這樣,以後又會去向何方。
以上是java程式設計思想怎麼樣的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于设计模式的相关问题,主要将装饰器模式的相关内容,指在不改变现有对象结构的情况下,动态地给该对象增加一些职责的模式,希望对大家有帮助。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器