
0人評分過此書
掌握Java SE8程式設計:Lambda的逆襲
在寫程式時,我們有時會希望『傳遞一段程式碼』給某個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參數? .探討高鐵為何會重複賣票 .累積式習題培養功力 .其他…………
『傳遞一段程式碼』給某個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參數? .探討高鐵為何會重複賣票 .累積式習題培養功力 .其他…………
-
00 本書導覽與隨書光碟
-
0.1 本書起源與目的
-
0.2 本書簡介
-
0.3 本書範例
-
0.4 作業系統的選擇
-
0.5 開發環境的選擇
-
0.6 本書光碟使用說明
-
0.7 出版後記
-
-
第一單元 基礎程式設計篇
-
01 Java簡介
-
1.1 程式與程式語言
-
1.2 程式語言簡介
-
1.3 Java與物件導向
-
1.4 編譯與執行範例
-
1.5 本章回顧
-
-
02 Java從零開始(Java程式的基本結構)
-
2.1 最簡單的Java程式範例
-
2.2 註解(comment)
-
2.3 package區
-
2.4 import區
-
2.5 類別區
-
2.6 Java程式的進入點main(…)
-
2.7 Java的敘述(statement)
-
2.8 println()輸出方法的簡易使用法
-
2.9 自由格式與空白字元
-
2.10 Eclipse IDE的活用
-
2.11 本章回顧
-
-
03 變數與運算式
-
3.1 變數與資料型態
-
3.2 資料輸入
-
3.3 運算式(運算子及運算元)
-
3.4 資料型態的轉換
-
3.5 本章回顧
-
-
04 流程控制
-
4.1 Java程式的邏輯結構
-
4.2 『選擇性』敘述
-
4.3 『迴圈』敘述
-
4.4 巢狀與縮排
-
4.5 本章回顧
-
-
05 陣列
-
5.1 一般程式語言的陣列概觀
-
5.2 Java的陣列
-
5.3 二維陣列
-
5.4 其他類別對於陣列的可用方法
-
5.5 本章回顧
-
-
06 函式(Method;方法)
-
6.1 認識函式
-
6.2 自行定義函式
-
6.3 好用的亂數函式
-
6.4 引數串列與引數傳遞
-
6.5 回傳陣列
-
6.6 搜尋演算法【補充】
-
6.7 main函式的參數串列
-
6.8 函式的final參數
-
6.9 遞迴函式
-
6.10 多載(overloading)
-
6.11 本章回顧
-
-
-
第二單元 物件導向程式設計篇
-
07 物件導向設計:類別與物件
-
7.1 物件導向程式設計
-
7.2 物件導向的三大特性
-
7.3 Java的類別
-
7.4 Java的物件
-
7.5 方法
-
7.6 建構子
-
7.7 物件引數的傳參考值呼叫
-
7.8 this關鍵字
-
7.9 物件陣列
-
7.10 類別變數與類別方法
-
7.11 本章回顧
-
-
08 繼承
-
8.1 類別繼承的目的
-
8.2 一般類別的繼承
-
8.3 final修飾字的用途
-
8.4 Object類別
-
8.5 抽象類別
-
8.6 本章回顧
-
-
09 介面
-
9.1 介面的定義
-
9.2 多重繼承
-
9.3 多型:介面型態變數與實作之類別物件
-
9.4 多型與動態繫結
-
9.5 變數的物件型態轉換
-
9.6 instanceof運算子
-
9.7 介面與抽象類別的異同
-
9.8 本章回顧
-
-
10 例外
-
10.1 什麼是例外
-
10.2 例外的種類
-
10.3 例外的引發
-
10.4 例外的處理
-
10.5 throws…由方法拋出例外
-
10.6 例外的處理與轉交
-
10.7 巢狀例外
-
10.8 重新丟出例外
-
10.9 本章回顧
-
-
11 類別庫
-
11.1 為何需要package
-
11.2 定義package
-
11.3 切割檔案
-
11.4 package的階層關係
-
11.5 匯入類別庫的所有類別
-
11.6 常用的類別庫-java.lang
-
11.7 變數及方法的封裝等級
-
11.8 本章回顧
-
-
12 檔案處理
-
12.1 Java的檔案處理
-
12.2 字元串流的檔案處理
-
12.3 位元串流的檔案處理
-
12.4 本章回顧
-
-
13 多執行緒
-
13.1 執行緒與程序
-
13.2 實作多執行緒
-
13.3 Thread類別控制多執行緒的方法
-
13.4 同步處理
-
13.5 本章回顧
-
-
14 泛型與集合
-
14.1 泛型
-
14.2 Java Collection
-
14.3 Collection<E>的實作類別
-
14.4 Map<K,V>的實作類別
-
14.5 Iterator<E>與ListIterator<E>介面
-
14.6 Iterable<T>、foreach語法蜜糖與forEach預設方法
-
14.7 Collections類別:Collections Framework的演算法
-
14.8 本章回顧
-
-
-
第三單元 視窗程式設計篇
-
15 內部類別與Lambda運算式
-
15.1 函數式程式語言
-
15.2 內部類別(巢狀類別)
-
15.3 Lambda運算式
-
15.4 Lambda運算式的限制
-
15.5 Lambda運算式與方法的參考
-
15.6 java.util的改良
-
15.7 本章回顧
-
-
16 圖形化程式設計
-
16.1 Java的視窗元件類別
-
16.2 Java視窗應用程式的基礎架構
-
16.3 版面編排
-
16.4 收納器內的收納器
-
16.5 事件處理
-
16.6 事件類別與事件傾聽介面
-
16.7 高階事件
-
16.8 低階事件
-
16.9 本章回顧
-
-
-
附錄
-
A 安裝JDK8
-
A.1 下載JDK8
-
A.2 安裝JDK8
-
A.3 設定工作環境
-
A.4 參考文件
-
-
B 安裝Eclipse IDE
-
B.1 下載Eclipse 4.4.2
-
B.2 執行Eclipse 4.4.2
-
B.3 中文化
-
B.4 檢視工作區
-
B.5 新增專案與新類別(使用預設套件)
-
B.6 新增專案並執行範例1(指定套件類別庫)
-
B.7 修改中文字型與顯示行號
-
-
C ASCII/Unicode字元對應表
-
D 流程圖
-
D.1 流程圖簡介
-
D.2 流程圖範例
-
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分