日韩偷拍一区二区,国产香蕉久久精品综合网,亚洲激情五月婷婷,欧美日韩国产不卡

在線客服
Java8實戰圖書
人氣:91

Java8實戰

本書結構清晰、內容翔實,從實例入手,涵蓋Java 8的主要新特性,包括Lambda表達式、方法引用、流、默認方法、Optional、CompletableFuture以及新的日期和時間API,是程序員了解Java 8新特性的**指南。
  • 所屬分類:圖書 >計算機/網絡>程序設計>Java Java Script J2EE  
  • 作者:[英][厄馬]([Raoul]-[Gabriel] [Urma])[意] [弗斯科]([Mario] F
  • 產品參數:
  • 叢書名:圖靈程序設計叢書
  • 國際刊號:9787115419347
  • 出版社:人民郵電出版社
  • 出版時間:2016-04
  • 印刷時間:2016-04-01
  • 版次:1
  • 開本:16開
  • 頁數:--
  • 紙張:膠版紙
  • 包裝:平裝
  • 套裝:

內容簡介

本書介紹了Java 8 這個里程碑版本的新特性,包括Lambdas、流和函數式編程。有了函數式的編程特性,可以讓代碼更簡潔,同時也能自動化地利用多核硬件。全書分四個部分:基礎知識、函數式數據處理、高效Java 8 編程和超越Java 8,清晰明了地向讀者展現了一幅Java 與時俱進的現代化畫卷。

編輯推薦

Java 8的使Java程序設計發生了翻天覆地的變化。利用Java 8中新引入的函數式特性,你可以在更短的時間內用更簡潔的代碼完成更復雜的功能,同時還能充分利用硬件的多核架構。

本書結構清晰、內容翔實,從實例入手,涵蓋Java 8的主要新特性,包括Lambda表達式、方法引用、流、默認方法、Optional、CompletableFuture以及新的日期和時間API,是程序員了解Java 8新特性的指南。

本書的主要內容如下:

如何使用Java 8新增的強大特性

如何編寫能有效利用多核架構的程序

重構、測試和調試

怎樣高效地應用函數式編程

作者簡介

Raoul-Gabriel Urma

劍橋大學計算機科學博士,軟件工程師,演講者,培訓師,Cambridge Coding Academy聯合創始人、CEO。曾與谷歌、eBay、甲骨文和高盛集團等大公司合作,并參與過多個創業項目。撰寫過十余篇經同行審閱的技術文章,并在國際會議上發表過40多篇演講。

Mario Fusco

Red Hat高級軟件工程師,負責JBoss規則引擎Drools的核心開發。擁有豐富的Java開發經驗,曾領導媒體公司、金融部門等多個行業的企業級項目開發。對函數式編程和領域特定語言等有濃厚興趣,并創建了開放源碼庫lambdaj。

Alan Mycroft

劍橋大學計算機實驗室計算學教授,劍橋大學羅賓遜學院研究員,歐洲編程語言和系統協會聯合創始人,樹莓派基金會聯合創始人和理事。發表過大約100篇研究論文,指導過20多篇博士論文。他的研究主要關注編程語言及其語義、優化和實施。他與業界聯系緊密,曾于學術休假期間在AT T實驗室和英特爾工作,還創立了Codemist公司,該公司設計了ARM C編譯器Norcroft。

目錄

及時部分 基礎知識

第1章為什么要關心Java 82

1.1Java怎么還在變4

1.1.1Java在編程語言生態系統中的位置4

1.1.2流處理6

1.1.3用行為參數化把代碼傳遞給方法7

1.1.4并行與共享的可變數據7

1.1.5Java需要演變8

1.2Java中的函數8

1.2.1方法和Lambda作為一等公民9

1.2.2傳遞代碼:一個例子11

1.2.3從傳遞方法到Lambda12

1.3流13

1.4默認方法17

1.5來自函數式編程的其他好思想18

1.6小結19

第2章通過行為參數化傳遞代碼20

2.1應對不斷變化的需求21

2.1.1初試牛刀:篩選綠蘋果21

2.1.2再展身手:把顏色作為參數21

2.1.3第三次嘗試:對你能想到的每個屬性做篩選22

2.2行為參數化23

2.3對付啰嗦27

2.3.1匿名類28

2.3.2第五次嘗試:使用匿名類28

2.3.3第六次嘗試:使用Lambda表達式30

2.3.4第七次嘗試:將List類型抽象化31

2.4真實的例子31

2.4.1用Comparator來排序31

2.4.2用Runnable執行代碼塊32

2.4.3GUI事件處理32

2.5小結33

第3章Lambda表達式34

3.1Lambda管中窺豹35

3.2在哪里以及如何使用Lambda37

3.2.1函數式接口37

3.2.2函數描述符39

3.3把Lambda付諸實踐:環繞執行模式41

3.3.1第1步記得行為參數化41

3.3.2第2步:使用函數式接口來傳遞行為42

3.3.3第3步:執行一個行為42

3.3.4第4步:傳遞Lambda42

3.4使用函數式接口43

3.4.1Predicate44

3.4.2Consumer44

3.4.3Function45

3.5類型檢查、類型推斷以及限制49

3.5.1類型檢查49

3.5.2同樣的Lambda,不同的函數式接口50

3.5.3類型推斷51

3.5.4使用局部變量52

3.6方法引用53

3.6.1管中窺豹53

3.6.2構造函數引用55

3.7Lambda和方法引用實戰57

3.7.1第1步:傳遞代碼58

3.7.2第2步:使用匿名類58

3.7.3第3步:使用Lambda表達式58

3.7.4第4步:使用方法引用59

3.8復合Lambda表達式的有用方法59

3.8.1比較器復合60

3.8.2謂詞復合60

3.8.3函數復合61

3.9數學中的類似思想62

3.9.1積分62

3.9.2與Java 8的Lambda聯系起來63

3.10小結64

第二部分 函數式數據處理

第4章引入流68

4.1流是什么68

4.2流簡介72

4.3流與集合74

4.3.1只能遍歷一次75

4.3.2外部迭代與內部迭代76

4.4流操作78

4.4.1中間操作78

4.4.2終端操作79

4.4.3使用流80

4.5小結81

第5章使用流82

5.1篩選和切片83

5.1.1用謂詞篩選83

5.1.2篩選各異的元素83

5.1.3截短流84

5.1.4跳過元素85

5.2映射86

5.2.1對流中每一個元素應用函數86

5.2.2流的扁平化87

5.3查找和匹配90

5.3.1檢查謂詞是否至少匹配一個元素90

5.3.2檢查謂詞是否匹配所有元素90

5.3.3查找元素91

5.3.4查找及時個元素92

5.4歸約92

5.4.1元素求和93

5.4.2較大值和最小值94

5.5付諸實踐97

5.5.1領域:交易員和交易98

5.5.2解答99

5.6數值流101

5.6.1原始類型流特化101

5.6.2數值范圍102

5.6.3數值流應用:勾股數103

5.7構建流105

5.7.1由值創建流106

5.7.2由數組創建流106

5.7.3由文件生成流106

5.7.4由函數生成流:創建無限流107

5.8小結110

第6章用流收集數據111

6.1收集器簡介112

6.1.1收集器用作高級歸約112

6.1.2預定義收集器113

6.2歸約和匯總114

6.2.1查找流中的較大值和最小值114

6.2.2匯總115

6.2.3連接字符串116

6.2.4廣義的歸約匯總117

6.3分組120

6.3.1多級分組121

6.3.2按子組收集數據122

6.4分區126

6.4.1分區的優勢126

6.4.2將數字按質數和非質數分區128

6.5收集器接口129

6.5.1理解Collector接口聲明的方法130

6.5.2全部融合到一起134

6.6開發你自己的收集器以獲得更好的性能135

6.6.1僅用質數做除數136

6.6.2比較收集器的性能139

6.7小結140

第7章并行數據處理與性能141

7.1并行流141

7.1.1將順序流轉換為并行流142

7.1.2測量流性能144

7.1.3正確使用并行流147

7.1.4高效使用并行流148

7.2分支/合并框架149

7.2.1使用RecursiveTask149

7.2.2使用分支/合并框架的做法153

7.2.3工作竊取154

7.3Spliterator155

7.3.1拆分過程155

7.3.2實現你自己的Spliterator157

7.4小結162

第三部分 高效Java 8編程

第8章重構、測試和調試164

8.1為改善可讀性和靈活性重構代碼164

8.1.1改善代碼的可讀性165

8.1.2從匿名類到Lambda表達式的轉換165

8.1.3從Lambda表達式到方法引用的轉換166

8.1.4從命令式的數據處理切換到Stream167

8.1.5增加代碼的靈活性168

8.2使用Lambda重構面向對象的設計模式170

8.2.1策略模式171

8.2.2模板方法172

8.2.3觀察者模式173

8.2.4責任鏈模式175

8.2.5工廠模式177

8.3測試Lambda表達式178

8.3.1測試可見Lambda函數的行為179

8.3.2測試使用Lambda的方法的行為179

8.3.3將復雜的Lambda表達式分到不同的方法180

8.3.4高階函數的測試180

8.4調試181

8.4.1查看棧跟蹤181

8.4.2使用日志調試183

8.5小結184

第9章默認方法 185

9.1不斷演進的API 187

9.1.1初始版本的API188

9.1.2第二版API188

9.2概述默認方法190

9.3默認方法的使用模式192

9.3.1可選方法192

9.3.2行為的多繼承192

9.4解決沖突的規則196

9.4.1解決問題的三條規則196

9.4.2選擇提供了具體實現的默認方法的接口197

9.4.3沖突及如何顯式地消除歧義198

9.4.4菱形繼承問題200

9.5小結201

第10章用Optional取代null202

10.1如何為缺失的值建模 203

10.1.1采用防御式檢查減少Null-PointerException203

10.1.2null帶來的種種問題204

10.1.3其他語言中null的替代品205

10.2Optional類入門206

10.3應用Optional的幾種模式 207

10.3.1創建Optional對象208

10.3.2使用map從Optional對象中提取和轉換值208

10.3.3使用flatMap鏈接Optional對象209

10.3.4默認行為及解引用Optional對象213

10.3.5兩個Optional對象的組合213

10.3.6使用filter剔除特定的值214

10.4使用Optional的實戰示例 216

10.4.1用Optional封裝可能為null的值216

10.4.2異常與Optional的對比217

10.4.3把所有內容整合起來218

10.5小結219

第11章CompletableFuture:組合式異步編程220

11.1Future接口222

11.1.1Future接口的局限性223

11.1.2使用CompletableFuture構建異步應用223

11.2實現異步API 224

11.2.1將同步方法轉換為異步方法225

11.2.2錯誤處理227

11.3讓你的代碼免受阻塞之苦228

11.3.1使用并行流對請求進行并行操作229

11.3.2使用CompletableFuture發起異步請求230

11.3.3尋找更好的方案232

11.3.4使用定制的執行器233

11.4對多個異步任務進行流水線操作234

11.4.1實現折扣服務235

11.4.2使用Discount服務236

11.4.3構造同步和異步操作237

11.4.4將兩個Completable-Future對象整合起來,無論它們是否存在依賴239

11.4.5對Future和Completable-Future的回顧241

11.5響應CompletableFuture的completion事件242

11.5.1對價格查詢器應用的優化243

11.5.2付諸實踐244

11.6小結245

第12章新的日期和時間API246

12.1LocalDate、LocalTime、Instant、Duration以及Period247

12.1.1使用LocalDate和LocalTime247

12.1.2合并日期和時間248

12.1.3機器的日期和時間格式249

12.1.4定義Duration或Period249

12.2操縱、解析和格式化日期251

12.2.1使用TemporalAdjuster253

12.2.2打印輸出及解析日期-時間對象255

12.3處理不同的時區和歷法256

12.3.1利用和UTC/格林尼治時間的固定偏差計算時區257

12.3.2使用別的日歷系統258

12.4小結259

第四部分 超越Java 8

第13章函數式的思考262

13.1實現和維護系統262

13.1.1共享的可變數據263

13.1.2聲明式編程264

13.1.3為什么要采用函數式編程265

13.2什么是函數式編程265

13.2.1函數式Java編程266

13.2.2引用透明性268

13.2.3面向對象的編程和函數式編程的對比 268

13.2.4函數式編程實戰269

13.3遞歸和迭代271

13.4小結274

第14章函數式編程的技巧275

14.1無處不在的函數275

14.1.1高階函數275

14.1.2科里化277

14.2持久化數據結構278

14.2.1破壞式更新和函數式更新的比較279

14.2.2另一個使用Tree的例子281

14.2.3采用函數式的方法282

14.3Stream的延遲計算283

14.3.1自定義的Stream 283

14.3.2創建你自己的延遲列表286

14.4模式匹配290

14.4.1訪問者設計模式291

14.4.2用模式匹配力挽狂瀾292

14.5雜項295

14.5.1緩存或記憶表295

14.5.2“返回同樣的對象”意味著什么296

14.5.3結合器296

14.6小結297

第15章面向對象和函數式編程的混合:Java 8和Scala的比較 299

15.1Scala簡介300

15.1.1你好,啤酒300

15.1.2基礎數據結構:List、Set、Map、Tuple、Stream以及Option302

15.2函數306

15.2.1Scala中的一等函數307

15.2.2匿名函數和閉包307

15.2.3科里化309

15.3類和trait310

15.3.1更加簡潔的Scala類310

15.3.2Scala的trait與Java 8的接口對比311

15.4小結312

第16章結論以及Java的未來313

16.1回顧Java 8的語言特性 313

16.1.1行為參數化(Lambda 以及方法引用)314

16.1.2流314

16.1.3CompletableFuture315

16.1.4Optional315

16.1.5默認方法316

16.2Java 的未來316

16.2.1集合316

16.2.2類型系統的改進317

16.2.3模式匹配318

16.2.4更加豐富的泛型形式319

16.2.5對不變性的更深層支持321

16.2.6值類型322

16.3寫在的話325

附錄A其他語言特性的更新326

附錄B類庫的更新330

附錄C如何以并發方式在同一個流上執行多種操作338

附錄DLambda表達式和JVM 字節碼346

媒體評論

“這是一部十分杰出且簡明的著作,書中提供了大量的示例,能幫助你迅速地掌握Java 8中的新特性。”——Jason Lee,甲骨文公司“這是超棒的Java 8指南!”——William Wheeler,ProData Computer Systems公司

“這本書中有關新的Stream API及Lambda表達式的示例非常有用。”——Steve Rogers, CGTek公司

“這是所有使用Java 8函數式特性的程序員都必讀的工具書。”——Mayur S. Patil,麻省理工學院

網友評論(不代表本站觀點)

來自匿名用**的評論:

還可以吧。

2017-03-17 15:05:54
來自匿名用**的評論:

學習下,面試用

2017-03-28 20:16:07
來自小***仔**的評論:

這本書的內容真的很棒,很實用,印刷還可以,整體感覺很不錯,當當的物流也比較給力,前一天晚上下單的,第二天就到了

2017-04-13 11:10:36
來自匿名用**的評論:

工作上用的到

2017-04-23 18:01:29
來自萌***想**的評論:

java8學起來,內容不錯,繼續學習新技術

2017-05-05 11:21:34
來自匿名用**的評論:

整體感覺不錯

2017-05-23 09:41:16
來自麥***狼**的評論:

很LOL木木木木木木嘟嘟嘟諾記

2017-05-26 19:49:48
來自i***i(**的評論:

性價比很高

2017-05-29 22:57:49
來自匿名用**的評論:

很好,很值得學習

2017-06-05 19:16:52
來自匿名用**的評論:

很好,很不錯,值得購買

2017-06-11 21:59:07
來自z***3(**的評論:

不錯,值得一看

2017-07-06 10:32:18
來自無昵稱**的評論:

紙張很好!

2017-07-08 18:03:43
來自匿名用**的評論:

不錯,正版

2017-07-09 14:39:37
來自匿名用**的評論:

實惠,買的最劃算的一次

2017-07-14 21:05:52
來自無昵稱**的評論:

大卡推薦的書,還沒來得及看,先好評!

2017-08-18 17:08:59
來自請看下**的評論:

非常滿意 推薦大家購買

2017-08-26 11:10:01
來自狂且子**的評論:

不錯的不錯的

2017-08-29 20:14:22
來自edc1wan**的評論:

函數式編程

2017-09-25 16:01:36
來自無昵稱**的評論:

值得擁有,只是翻譯不是太好。

2017-10-11 15:57:22
來自無昵稱**的評論:

不錯啊不錯不錯不錯啊不錯不錯不錯啊不錯不錯

2017-10-12 12:12:58
來自z***4(**的評論:

書很不錯!!

2017-11-01 14:58:12
來自cfair**的評論:

很好,包裝好,內容也好,學習java8的好選擇

2016-05-08 16:22:33
來自匿名用**的評論:

真心不錯,一如既往的manning出版社風格,很喜歡

2017-05-08 23:17:55
來自匿名用**的評論:

內容不錯,java不斷升級,自身也需要跟上時代的腳步。

2017-05-28 09:03:16
來自菲雨霧**的評論:

內容不錯,涵蓋了java8的新特性。尤其對于其lambda表達式有了直觀的闡述。強烈推薦!

2016-06-17 16:43:41
來自zhencha**的評論:

這本書寫的很不錯,對于希望掌握java8新特性的開發人員來說值得一看

2016-09-25 18:56:48
來自無昵稱**的評論:

學習之利器,java8很多特性呢,嗯,是我們,程序員學習java8的,一個很好的,很好的一本入門書。

2016-10-28 22:56:10
來自邊***(**的評論:

詳細介紹了 Java8 的一些新特性,很值得看的一本中高級 Java 書

2017-01-16 22:04:00

免責聲明

更多出版社
主站蜘蛛池模板: 临西县| 白水县| 南京市| 大城县| 叙永县| 五河县| 柳州市| 甘肃省| 永春县| 肥西县| 桓仁| 酉阳| 新源县| 鄢陵县| 元阳县| 新密市| 南开区| 色达县| 台中市| 常州市| 泸溪县| 兴城市| 奈曼旗| 泌阳县| 繁昌县| 正定县| 巴青县| 平武县| 南充市| 绍兴市| 蛟河市| 朝阳县| 永仁县| 宾川县| 西贡区| 海原县| 诸暨市| 门源| 靖宇县| 拜城县| 葵青区|