<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # [前言](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e5%89%8d%e8%a8%80) > 本書基于 Java 8 版本來教授當前 Java 編程的最優實踐。 我之前的 Java 書籍*Thinking in Java, 4th Edition*(《Java編程思想 (第4版)》 Prentice Hall 2006)依然適用于 Java 5 編程,在此版本 Java 語言開始用作 Android 編程。此后,這門語言的許多地方發生了翻天覆地的變化,特別是 Java 8 的轉變,以至于新的 Java 代碼讀起來的感覺也不盡相同。這也促使我時隔多年,創作了這本新書。 《On Java 8》旨在面向已具有編程基礎的開發者們。對于初學者,可以先在[Code.org](http://code.org/)或者[Khan Academy](https://www.khanacademy.org/computing/computer-programming)等網站補充必要的前置知識。同時,[OnJava8.com](http://www.onjava8.com/)上也有免費的 Thinking in C(《C編程思想》)專題知識。與幾年前我們依賴印刷媒體時相比,像 YouTube、博客和 StackOverFlow 這樣的網站使得尋找答案變得非常簡單。如果將本書作為編程入門書籍,請結合這些學習途徑努力堅持下去。同時,本書也適合想要擴展知識的在職程序員。 得益于《*Thinking in Java*》,我得以到世界各地演講,我對此由衷感激。它為我的[Reinventing Business](http://www.reinventing-business.com/)項目在與人員及公司建立聯系方面提供了寶貴的幫助。我最終撰寫本書的原因之一就是想支持這一項目的研究,而下一個合乎邏輯的步驟似乎是實際創建一個所謂的藍綠色組織(Teal Organization)。我希望本書可以成為該項目的一種眾籌。 ## [教學目標](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e6%95%99%e5%ad%a6%e7%9b%ae%e6%a0%87) 每章教授一個或一組相關的概念,并且這些知識不依賴于尚未學習到的章節。如此,學習者可以在當前知識的背景框架下循序漸進地掌握 Java。 本書的教學目標: 1. 循序漸進地呈現學習內容,以便于你在不依賴后置知識框架的情況下輕松完成現有的學習任務,同時盡量保證前面章節的內容在后面的學習中得到運用。如果確有必要引入我們還沒學習到的知識概念,我會做個簡短地介紹。 2. 盡可能地使用簡單和簡短的示例,方便讀者理解。而不強求引入解決實際問題的例子。因為我發現,相比解決某個實際問題,讀者更樂于看到自己真正理解了示例的每個細節。或許我會因為這些“玩具示例”而被一些人所詬病,但我更愿意看到我的讀者們因此能保持饒有興趣地學習。 3. 把我知道以及我認為對于你學習語言很重要的東西都告訴你。我認為信息的重要性是分層次結構的。絕大多數情況下,我們沒必要弄清問題的所有本質。好比編程語言中的某些特性和實現細節,95% 的程序員都不需要去知道。這些細節除了會加重你的學習成本,還讓你更覺得這門語言好復雜。如果你非要考慮這些細節,那么它還會迷惑該代碼的閱讀者/維護者,所以我主張選擇簡單的方法解決問題。 4. 希望本書能為你打下堅實的基礎,方便你將來學習更難的課程和書籍。 ## [語言設計錯誤](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e8%af%ad%e8%a8%80%e8%ae%be%e8%ae%a1%e9%94%99%e8%af%af) 每種語言都有設計錯誤。當新手程序員涉足語言特性并猜測應用場景和使用方式時,他們體驗到極大的不確定性和挫折感。承認錯誤令人尷尬,但這種糟糕的初學者經歷比認識到你錯在哪里還要糟糕。唉,每一種語言/庫的設計錯誤都會永久地嵌入在 Java 的發行版中。 諾貝爾經濟學獎得主約瑟夫·斯蒂格利茨(*Joseph Stiglitz*)有一套適用于這里的人生哲學,叫做“承諾升級理論”:繼續犯錯誤的成本由別人承擔,而承認錯誤的成本由自己承擔。 看過我此前作品的讀者們應該清楚,我一般傾向于指出這些錯誤。Java 擁有一批狂熱的粉絲。他們把語言當成是陣營而不是純粹的編程工具。我寫過 Java 書籍,所以他們兀自認為我自然也是這個“陣營”的一份子。當我指出 Java 的這些錯誤時,會造成兩種影響: 1. 早先許多錯誤“陣營”的人成為了犧牲品。最終,時隔多年后,大家都意識到這是個設計上的錯誤。然而錯誤已然成為 Java 歷史的一部分了。 2. 更重要的是,新手程序員并沒有經歷過“語言為何采用某種方式實現”的爭議過程。特別是那些隱約察覺不對卻依然說服自己“我必須要這么做”或“我只是沒學明白”從而繼續錯下去的人。更糟糕的是,教授這些編程知識的老師們沒能深入地去研究這里是否有設計上的錯誤,而是繼續錯誤的解讀。總之,通過了解語言設計上的錯誤,能讓開發者們更好地理解和意識到錯誤的本質,從而更快地進步。 對編程語言的設計錯誤理解至關重要,甚至影響程序員的開發效率。部分公司在開發過程中避免使用語言的某些功能特性。這些功能特性表面上看起來高大上,但是弄不好卻可能出現意料之外的錯誤,影響整個開發進程。 已知的語言設計錯誤會給新的一門編程語言的作者提供參考。探索一門語言能做什么是很有趣的一件事,而語言設計錯誤能提醒你哪些“坑”是不能再趟的。多年以來,我一直感覺 Java 的設計者們有點脫離群眾。Java 的有些設計錯誤錯的太明顯,我甚至懷疑設計者們到底是為出于服務用戶還是其他動機設計了這些功能。Java 語言有許多臭名昭著的設計錯誤,很可能這也是誘惑所在。Java 似乎并不尊重開發者。為此我很長時間內不想與 Java 有任何瓜葛。很大程度上,這也是我不想碰 Java 的原因吧。 如今再審視 Java 8,我發現了許多變化。設計者們對于語言和用戶的態度似乎發生了根本性上的改變。忽視用戶投訴多年之后,Java 的許多功能和類庫都已被搞砸了。 新功能的設計與以往有很大不同。掌舵者開始重視程序員的編程經驗。新功能的開發都是在努力使語言變得更好,而非僅僅停留在快速堆砌功能而不去深入研究它們的含義。甚至有些新特性的實現方式非常優雅(至少在 Java 約束下盡可能優雅)。 我猜測可能是部分設計者的離開讓他們意識到了這點。說真的,我沒想到會有這些變化!因為這些原因,寫這本書的體驗要比以往好很多。Java 8 包含了一系列基礎和重要的改進。遺憾的是,為了嚴格地“向后兼容”,我們不大可能看到戲劇性的變化,當然我希望我是錯的。盡管如此,我很贊賞那些敢于自我顛覆,并為 Java 設定更好路線的人。第一次,對于自己所寫的部分 Java 8 代碼我終于可以說“贊!” 最后,本書所著時間似乎也還不錯,因為 Java 8 引入的新功能已經強烈地影響了今后 Java 的編碼方式。截止我在寫這本書時,Java 9 似乎更專注于對語言底層的基礎結構功能的重要更新,而非本書所關注的新編碼方式。話說回來,得益于電子書出版形式的便捷,假如我發現本書有需要更新或添加的內容,我可以第一時間將新版本推送給現有讀者。 ## [測試用例](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e6%b5%8b%e8%af%95%e7%94%a8%e4%be%8b) 書中代碼示例基于 Java 8 和 Gradle 編譯構建,并且代碼示例都保存在[這個自由訪問的GitHub的倉庫](https://github.com/BruceEckel/OnJava8-Examples)中。我們需要內置的測試框架,以便于在每次構建系統時自動運行。否則,你將無法保證自己代碼的可靠性。為了實現這一點,我創建了一個測試系統來顯示和驗證大多數示例的輸出結果。這些輸出結果我會附加在示例結尾的代碼塊中。有時僅顯示必要的那幾行或者首尾行。利用這種方式來改善讀者的閱讀和學習體驗,同時也提供了一種驗證示例正確性的方法。 ## [普及性](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e6%99%ae%e5%8f%8a%e6%80%a7) Java 的普及性對于其受歡迎程度有重要意義。學習 Java 會讓你更容易找到工作。相關的培訓材料,課程和其他可用的學習資源也很多。對于企業來說,招聘 Java 程序員相對容易。如果你不喜歡 Java 語言,那么最好不要拿他當作你謀生的工具,因為這種生活體驗并不好。作為一家公司,在技術選型前一定不要單單只考慮 Java 程序員好招。每種語言都有其適用的范圍,有可能你們的業務更適用于另一種編程語言來達到事半功倍的效果。如果你真的喜歡 Java,那么歡迎你。希望這本書能豐富你的編程經驗! ## [關于安卓](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e5%85%b3%e4%ba%8e%e5%ae%89%e5%8d%93) 本書基于 Java 8 版本。如果你是 Andriod 程序員,請務必學習 Java 5。在《On Java 8》出版的時候,我的另一本基于 Java 5 的著作*Thinking in Java 4th Edition*(《Java編程思想》第四版)已經可以在[www.OnJava8.com](http://www.onjava8.com/)上免費下載了。此外,還有許多其他專用于 Andriod 編程的資源。 ## [電子版權聲明](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e7%94%b5%e5%ad%90%e7%89%88%e6%9d%83%e5%a3%b0%e6%98%8e) 《On Java 8》僅提供電子版,并且僅通過[www.OnJava8.com](http://www.onjava8.com/)提供。任何未經[mindviewinc@gmail.com](mailto:mindviewinc@gmail.com)授權的其他來源或流傳送機構都是非法的。本作品受版權保護!未經許可,請勿通過以任何方式分享或發布。你可以使用這些示例進行教學,只要不對本書非法重新出版。有關完整詳細信息,請參閱示例分發中的 Copyright.txt 文件。對于視覺障礙者,電子版本有可搜索性,字體大小調整或文本到語音等諸多好處。 任何購買這本書的讀者,還需要一臺計算機來運行和寫作代碼。另外電子版在計算機上和移動設備上的顯示效果俱佳,推薦使用平板設備閱讀。相比購買傳統紙質版的價格,平板電腦價格都足夠便宜。在床上閱讀電子版比看這樣一本厚厚的實體書要方便得多。起初你可能會有些不習慣,但我相信很快你就會發現它帶來的優點遠勝過不適。我已經走過這個階段,Google Play 圖書的瀏覽器閱讀體驗非常好,包括在 Linux 和 iOS 設備上。作為一次嘗試,我決定嘗試通過 Google 圖書進行出版。 **注意**:在撰寫本文時,通過 Google Play 圖書網絡瀏覽器應用閱讀圖書雖然可以忍受,但體驗還是有點差強人意,我強烈推薦讀者們使用平板電腦來閱讀。 ## [版本說明](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e7%89%88%e6%9c%ac%e8%af%b4%e6%98%8e) 本書采用[Pandoc](http://pandoc.org/)風格的 Markdown 編寫,使用 Pandoc 生成 ePub v3 格式。 正文字體為 Georgia,標題字體為 Verdana。 代碼字體使用的 Ubuntu Mono,因為它特別緊湊,單行能容納更多的代碼。 我選擇將代碼內聯(而不是將列表放入圖像,參照其他書籍),因為我覺得這個功能很重要:讓代碼塊能適應字體大小得改變而改變(否則,買電子版,還圖什么呢?)。 書中的提取,編譯和測試代碼示例的構建過程都是自動化的。所有自動化操作都是通過我在 Python 3 中編寫的程序來實現的。 ## [封面設計](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e5%b0%81%e9%9d%a2%e8%ae%be%e8%ae%a1) 《On Java 8》的封面是根據 W.P.A.(Works Progress Administration 1935年至1943年美國大蕭條期間的一個巨大項目,它使數百萬失業人員重新就業)的馬賽克創作的。它還讓我想起了《綠野仙蹤》(*The Wizard of Oz*)系列叢書中的插圖。 我的好朋友、設計師丹*Daniel Will-Harris*([www.will-harris.com](http://www.will-harris.com/))和我都喜歡這個形象。 ## [感謝的人](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e6%84%9f%e8%b0%a2%e7%9a%84%e4%ba%ba) 感謝*Domain-Driven Design*(《領域驅動設計》 )的作者*Eric Evans*建議書名,以及其他新聞組校對的幫助。 感謝*James Ward*為我開始使用 Gradle 工具構建這本書,以及他多年來的幫助和友誼。 感謝*Ben Muschko*在整理構建文件方面的工作,還有感謝*Hans Dockter*給*Ben*提供了時間。 感謝*Jeremy Cerise*和*Bill Frasure*來到開發商務聚會預訂,并隨后提供了寶貴的幫助。 感謝所有花時間和精力來科羅拉多州克雷斯特德比特(Crested Butte, Colorado)鎮參加我的研討會,開發商務聚會和其他活動的人!你們的貢獻可能不容易看到,但卻非常重要! ## [獻禮](https://lingcoder.gitee.io/onjava8/#/book/00-Preface?id=%e7%8c%ae%e7%a4%bc) > 謹以此書獻給我敬愛的父親 E. Wayne Eckel。 1924年4月1日至2016年11月23日
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看