本書簡介 在寫程式時,我們有時會希望『傳遞一段程式碼』給某個method,並且不限定該method何時來執行這段程式碼,例如Comparator的compare method就是個最明顯的例子。以往,Java必須透過物件間接完成這個目標,也就是將這段程式碼變成某個物件的某個method實作內容,然而這個method在介面或類別宣告時就必須有個名稱,但這個名稱對於我們想要『傳遞一段程式碼』的目的而言,其實是多餘的。
『傳遞一段程式碼』給某個method在函數式程式語言中,不難做到。而眾多非函數式程式語言也陸續加入了這個功能,它們為此功能取了一個響亮的名字 ── Lambda運算式。
為何取名為Lambda運算式呢? 它源自於一種古老的演算 ── λ演算(Lambda正是拉丁字母λ的讀音)。在λ演算中,函數是匿名的,代表著函數的名稱並不重要,因此,將『傳遞一段程式碼』的功能取名為Lambda運算式,再恰當不過了。
SE8是Java近來最大幅度的改版,SE8包含了眾多的新功能,而當中最重要的當屬Lambda運算式。為了支援Lambda運算式,SE8的介面也可以有方法的實作,稱之為介面的預設方法,這完全顛覆了原本Java物件導向設計的規劃。但面對其他正逐步流行的程式語言,Java不得不這樣做以持續保有市占率。
換句話說,Java面對其他語言的競爭,提出了Lambda運算式這項利器,並且在某種程度上,能夠取代為人所詬病、常見於視窗程式(事件傾聽處理)的內部匿名類別。故而本書副標取名為《Lambda的逆襲》以彰顯Java SE8的企圖。
本書改版自暢銷數萬本的《初學指引》系列,作者認為本書已經不再適用於只想學些皮毛的讀者,而是期望將讀者由初學者導引成為Java初級工程師,要做到這一點,就應該在第一本學習書籍當中,充分掌握Java的設計精隨以及關鍵基礎技術,故而本書從SE8版開始更名為《掌握》系列。
本書以細心規劃的進度,培養讀者在十六周的學習中,成功變身為Java初級工程師,同時釐清一些對於初學者容易產生困擾的技術,例如Java的限定泛型。並且在適當時機,讓讀者於不知不覺中,就學會了SE8的最新功能──Lambda運算式。同時本書也搭配精心設計的的累積式習題,讓讀者能夠循序漸進地真正成為一位Java程式設計師。
本書的特色如下:
.由淺入深
.Lambda無痛入門
.釐清複雜的泛型語法
.Java SE7到SE8的無縫接軌
.釐清函數式介面與抽象類別的差異
.釐清匿名類別與Lambda運算式的適用場合
.釐清Java只有傳值呼叫,沒有如同C#的傳參考呼叫
.透過「Coding偷撇步、注意事項」加強讀者的程式設計實務經驗
.透過「延伸學習」明確引導讀者,未來的學習之路
.透過「筆者的話」向讀者傳遞正確的基本觀念
.探討浮點數變數為何不適合做為比較條件
.探討編譯器為何加入final的this參數?
.探討高鐵為何會重複賣票
.累積式習題培養功力
.其他…………
作者簡介:
陳錦輝
經歷:
Time研究室專業作家、專業審校者
私立育達商業技術學院 資管系兼任講師
核心智識股份有限公司 產品經理/專案經理/軟體工程師
研究領域/專長:程式語言、網頁設計、App開發、資料庫、人工智慧、知識工程、現代軟體工程
陳錦輝老師長期投入於IT書籍的編寫、審校,至今發表達數十本著作,其著作列表請見http://jhchen1972.blogspot.tw/2009/10/1.html
陳錦輝老師為著名的暢銷作者,撰寫之書籍銷售量達數十萬冊。近年來更投入於經典原文書的審校翻譯工作,為博碩文化名家名著系列的重要審校者,其中最經典的案例為2013銷售排行榜第一名的《無瑕的程式碼──Clean Code》及其姊妹作《無瑕的程式碼──番外篇──The Clean Coder》。這幾年,陳錦輝老師亦致力於縮短學用落差,積極為博碩文化開創適合於學校業師教學的新型態教科書,並兼任博碩文化的副總編輯。
目錄
第0 章:本書導讀與隨書光碟
第一單元 基礎程式設計篇
第 1章:Java 簡介
第 2章:Java 從零開始(Java 程式的基本結構)
第 3章:變數與運算式
第 4章:流程控制
第 5章:陣列(Array)
第 6章:函式(Method;方法)
第二單元 物件導向程式設計篇
第 7章:物件導向設計:類別與物件
第 8章:繼承
第 9章:介面
第10章:例外處理
第11章:類別庫(package)
第12章:檔案處理
第13章:多執行緒
第14章:泛型與集合(Collections Framework)
第三單元 視窗程式設計篇
第15章:內部類別與Lambda 運算式
第16章:圖形化程式設計
附錄
附錄 A 安裝JDK8(含工作環境設定)
附錄 B 安裝 Eclipse IDE(含中文化與範例應用)
附錄 C ASCII/Unicode 字元對應表
附錄 D 流程圖
電子附錄(書附光碟)Java Applet
第0 章:本書導讀與隨書光碟
第一單元 基礎程式設計篇
第 1章:Java 簡介
第 2章:Java 從零開始(Java 程式的基本結構)
第 3章:變數與運算式
第 4章:流程控制
第 5章:陣列(Array)
第 6章:函式(Method;方法)
第二單元 物件導向程式設計篇
第 7章:物件導向設計:類別與物件
第 8章:繼承
第 9章:介面
第10章:例外處理
第11章:類別庫(package)
第12章:檔案處理
第13章:多執行緒
第14章:泛型與集合(Collections Framework)
第三單元 視窗程式設計篇
第15章:內部類別與Lambda 運算式
第16章:圖形化程...
購物須知
關於二手書說明:
商品建檔資料為新書及二手書共用,因是二手商品,實際狀況可能已與建檔資料有差異,購買二手書時,請務必檢視商品書況、備註說明及書況影片,收到商品將以書況影片內呈現為準。若有差異時僅可提供退貨處理,無法換貨或再補寄。
商品版權法律說明:
TAAZE 單純提供網路二手書託售平台予消費者,並不涉入書本作者與原出版商間之任何糾紛;敬請各界鑒察。
退換貨說明:
二手書籍商品享有10天的商品猶豫期(含例假日)。若您欲辦理退貨,請於取得該商品10日內寄回。
二手影音商品(例如CD、DVD等),恕不提供10天猶豫期退貨。
二手商品無法提供換貨服務,僅能辦理退貨。如須退貨,請保持該商品及其附件的完整性(包含書籍封底之TAAZE物流條碼)。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱
退換貨原則、
二手CD、DVD退換貨說明。