[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

Java實戰 第2版(圖靈出品)全面講解Java8、9、10新特性java 語言
該商品所屬分類:圖書 -> 科技
【市場價】
948-1376
【優惠價】
593-860
【作者】 拉烏爾加布裡埃爾·烏爾瑪RaoulGa 
【出版社】人民郵電出版社 
【ISBN】9787115521484
【折扣說明】一次購物滿999元台幣免運費+贈品
一次購物滿2000元台幣95折+免運費+贈品
一次購物滿3000元台幣92折+免運費+贈品
一次購物滿4000元台幣88折+免運費+贈品
【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
版本正版全新電子版PDF檔
您已选择: 正版全新
溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
*. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
*. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
內容介紹



出版社:人民郵電出版社
ISBN:9787115521484
商品編碼:63255767980

品牌:文軒
出版時間:2019-12-01
代碼:119

作者:拉烏爾-加布裡埃爾·烏爾瑪(Raoul-Ga

    
    
"
作  者:(英)拉烏爾-加布裡埃爾·烏爾瑪(Raoul-Gabriel Urma),(意)馬裡奧·富斯科(Mario Fusco),(英)艾倫·米克羅夫特(Alan Mycroft) 著 陸明剛,勞佳 譯
/
定  價:119
/
出 版 社:人民郵電出版社
/
出版日期:2019年12月01日
/
頁  數:486
/
裝  幀:平裝
/
ISBN:9787115521484
/
目錄
●第一部分基礎知識
第1章Java8、9、10以及11的變化2
1.1為什麼要關心Java的變化2
1.2Java怎麼還在變4
1.2.1Java在編程語言生態繫統中的位置5
1.2.2流處理6
1.2.3用行為參數化把代碼傳遞給方法7
1.2.4並行與共享的可變數據8
1.2.5Java需要演變9
1.3Java中的函數9
1.3.1方法和Lambda作為一等值10
1.3.2傳遞代碼:一個例子11
1.3.3從傳遞方法到Lambda13
1.4流14
1.5默認方法及Java模塊17
1.6來自函數式編程的其他好思想19
1.7小結20
第2章通過行為參數化傳遞代碼22
2.1應對不斷變化的需求23
2.1.1初試牛刀:篩選綠蘋果23
2.1.2再展身手:把顏色作為參數23
2.1.3第三次嘗試:對你能想到的每個屬性做篩選24
2.2行為參數化25
2.3對付啰唆30
2.3.1匿名類30
2.3.2第五次嘗試:使用匿名類31
2.3.3第六次嘗試:使用Lambda表達式32
2.3.4第七次嘗試:將List類型抽像化33
2.4真實的例子33
2.4.1用Comparator來排序33
2.4.2用Runnable執行代碼塊34
2.4.3通過Callable返回結果35
2.4.4GUI事件處理35
2.5小結36
第3章Lambda表達式37
3.1Lambda管中窺豹37
3.2在哪裡以及如何使用Lambda40
3.2.1函數式接口40
3.2.2函數描述符42
3.3把Lambda付諸實踐:環繞執行模式44
3.3.1第1步:記得行為參數化44
3.3.2第2步:使用函數式接口來傳遞行為45
3.3.3第3步:執行一個行為45
3.3.4第4步:傳遞Lambda46
3.4使用函數式接口47
3.4.1Predicate47
3.4.2Consumer47
3.4.3Function48
3.5類型檢查、類型推斷以及52
3.5.1類型檢查52
3.5.2同樣的Lambda,不同的函數式接口53
3.5.3類型推斷55
3.5.4使用局部變量56
3.6方法引用57
3.6.1管中窺豹57
3.6.2構造函數引用60
3.7Lambda和方法引用實戰62
3.7.1第1步:傳遞代碼62
3.7.2第2步:使用匿名類62
3.7.3第3步:使用Lambda表達式62
3.7.4第4步:使用方法引用63
3.8復合Lambda表達式的有用方法63
3.8.1比較器復合64
3.8.2謂詞復合64
3.8.3函數復合65
3.9數學中的類似思想66
3.9.1積分66
3.9.2與Java8的Lambda聯繫起來68
3.10小結68
第二部分使用流進行函數式數據處理
第4章引入流72
4.1流是什麼72
4.2流簡介76
4.3流與集合78
4.3.1隻能遍歷一次79
4.3.2外部迭代與內部迭代80
4.4流操作82
4.4.1中間操作83
4.4.2終端操作84
4.4.3使用流84
4.5路線圖85
4.6小結85
第5章使用流86
5.1篩選87
5.1.1用謂詞篩選87
5.1.2篩選素87
5.2流的切片88
5.2.1使用謂詞對流進行切片88
5.2.2截短流90
5.2.素90
5.3映射91
5.3.1對流中素應用函數91
5.3.2流的扁平化92
5.4查找和匹配95
5.4.1檢查謂詞是否至少匹素95
5.4.2檢查謂詞是否匹素96
5.4.素96
5.4.4查找素97
5.5歸約98
5.素求和98
5.5.2優選值和最小值100
5.6付諸實踐103
5.6.1領域:交易員和交易103
5.6.2解答104
5.7數值流106
5.7.1原始類型流特化107
5.7.2數值範圍108
5.7.3數值流應用:勾股數108
5.8構建流111
5.8.1由值創建流111
5.8.2由可空對像創建流111
5.8.3由數組創建流112
5.8.4由文件生成流112
5.8.5由函數生成流:創建無限流113
5.9概述116
5.10小結116
第6章用流收集數據118
6.1收集器簡介119
6.1.1收集器用作高級歸約119
6.1.2預定義收集器120
6.2歸約和彙總121
6.2.1查找流中的優選值和最小值121
6.2.2彙總122
6.2.3連接字符串123
6.2.4廣義的歸約彙總124
6.3分組127
6.3.1操作素128
6.3.2多級分組130
6.3.3按子組收集數據131
6.4分區134
6.4.1分區的優勢135
6.4.2將數字按質數和非質數分區136
6.5收集器接口138
6.5.1理解Collector接口聲明的方法139
6.5.2全部融合到一起143
6.6開發你自己的收集器以獲得更好的性能144
6.6.1僅用質數做除數145
6.6.2比較收集器的性能148
6.7小結150
第7章並行數據處理與性能151
7.1並行流152
7.1.1將順序流轉換為並行流52
7.1.2測量流性能154
7.1.3正確使用並行流158
7.1.4高效使用並行流159
7.2分支/合並框架161
7.2.1使用RecursiveTask161
7.2.2使用分支/合並框架的很好做法164
7.2.3工作竊取165
7.3Spliterator166
7.3.1拆分過程167
7.3.2實現你自己的Spliterator168
7.4小結173
第三部分使用流和Lambda進行高效編程
第8章CollectionAPI的增強功能176
8.1集合工廠176
8.1.1List工廠177
8.1.2Set工廠178
8.1.3Map工廠179
8.2使用List和Set180
8.2.1removeIf方法180
8.2.2replaceAll方法181
8.3使用Map181
8.3.1forEach方法182
8.3.2排序182
8.3.3getOrDefault方法183
8.3.4計算模式183
8.3.5刪除模式184
8.3.6替換模式185
8.3.7merge方法185
8.4改進的ConcurrentHashMap187
8.4.1歸約和搜索187
8.4.2計數188
8.4.3Set視圖188
8.5小結188
第9章重構、測試和調試189
9.1為改善可讀性和靈活性重構代碼189
9.1.1改善代碼的可讀性190
9.1.2從匿名類到Lambda表達式的轉換190
9.1.3從Lambda表達式到方法引用的轉換191
9.1.4從命令式的數據處理切換到Stream193
9.1.5增加代碼的靈活性193
9.2使用Lambda重構面向對像的設計模式195
9.2.1策略模式196
9.2.2模板方法197
9.2.3觀察者模式198
9.2.4責任鏈模式201
9.2.5工廠模式202
9.3測試Lambda表達式204
9.3.1測試可見Lambda函數的行為204
9.3.2測試使用Lambda的方法的行為205
9.3.3將復雜的Lambda表達式分為不同的方法205
9.3.4高階函數的測試206
9.4調試206
9.4.1查看棧跟蹤206
9.4.2使用日志調試208
9.5小結209
第10章基於Lambda的領域特定語言210
10.1領域特定語言212
10.1.1DSL的優點和弊端212
10.1.2JVM中已提供的DSL解決方案214
10.2現代JavaAPI中的小型DSL217
10.2.1把StreamAPI當成DSL去操作集合219
10.2.2將Collectors作為DSL彙總數據220
10.3使用Java創建DSL的模式與技巧221
10.3.1方法鏈接224
10.3.2使用嵌套函數226
10.3.3使用Lambda表達式的函數序列228
10.3.4把它們都放到一起230
10.3.5在DSL中使用方法引用232
10.4Java8DSL的實際應用234
10.4.1jOOQ235
10.4.2Cucumber236
10.4.3SpringIntegration238
10.5小結239
第四部分無所不在的Java
第11章用Optional取代null242
11.1如何為缺失的值建模243
11.1.1采用防御式檢查減少NullPointerException243
11.1.2null帶來的種種問題245
11.1.3其他語言中null的替代品245
11.2Optional類入門246
11.3應用Optional的幾種模式248
11.3.1創建Optional對像248
11.3.2使用map從Optional對像中提取和轉換值248
11.3.3使用flatMap鏈接Optional對像249
11.3.4操縱由Optional對像構成的Stream253
11.3.5默認行為及解引用Optional對像254
11.3.6兩個Optional對像的組合255
11.3.7使用filter剔除特定的值257
11.4使用Optional的實戰示例258
11.4.1用Optional封裝可能為null的值259
11.4.2異常與Optional的對比259
11.4.3基礎類型的Optional對像,以及為什麼應該避免使用它們260
11.4.4把所有內容整合起來260
11.5小結262
第12章新的日期和時間API263
12.1LocalDate、LocalTime、LocalDateTime、Instant、Duration以及Period264
12.1.1使用LocalDate和LocalTime264
12.1.2合並日期和時間265
12.1.3機器的日期和時間格式266
12.1.4定義Duration或Period267
12.2操縱、解析和格式化日期268
12.2.1使用TemporalAdjuster270
12.2.2打印輸出及解析日期–時間對像272
12.3處理不同的時區和歷法274
12.3.1使用時區274
12.3.2利用和UTC/格林尼治時間的固定偏差計算時區275
12.3.3使用別的日歷繫統276
12.4小結277
第13章默認方法278
13.1不斷演進的API280
13.1.1初始版本的API281
13.1.2第二版API281
13.2概述默認方法283
13.3默認方法的使用模式285
13.3.1可選方法285
13.3.2行為的多繼承286
13.4解決衝突的規則289
13.4.1解決問題的三條規則289
13.4.2選擇提供了擁有體實現的默認方法的接口290
13.4.3衝突及如何顯式地消除歧義291
13.4.4菱形繼承問題293
13.5小結294
第14章Java模塊繫統295
14.1模塊化的驅動力:軟件的推理295
14.1.1關注點分離295
14.1.2信息隱藏296
14.1.3Java軟件296
14.2為什麼要設計Java模塊繫統297
14.2.1模塊化的局限性297
14.2.2單體型的JDK298
14.2.3與OSGi的比較299
14.3Java模塊:全局視圖300
14.4使用Java模塊繫統開發應用301
14.4.1從頭開始搭建一個應用302
14.4.2細粒度和粗粒度的模塊化303
14.4.3Java模塊繫統基礎303
14.5使用多個模塊304
14.5.1exports子句304
14.5.2requires子句305
14.5.3命名306
14.6編譯及打包306
14.7自動模塊310
14.8模塊聲明及子句311
14.8.1requires311
14.8.2exports311
14.8.3requires的傳遞311
14.8.4exportsto312
14.8.5open和opens312
14.8.6uses和provides313
14.9通過一個更復雜的例子了解更多313
14.10小結314
第五部分提升Java的並發性
第15章CompletableFuture及反應式編程背後的概念316
15.1為支持並發而不斷演進的Java318
15.1.1線程以及更高層的抽像319
15.1.2執行器和線程池320
15.1.3其他的線程抽像:非嵌套方法調用322
15.1.4你希望線程為你帶來什麼324
15.2同步及異步API324
15.2.1Future風格的API326
15.2.2反應式風格的API327
15.2.3有害的睡眠及其他阻塞式操作328
15.2.4實戰驗證329
15.2.5如何使用異步API進行異常處理330
15.3“線框–管道”模型331
15.4為並發而生的CompletableFuture和結合器332
15.5“發布–訂閱”以及反應式編程335
15.5.1示例:對兩個流求和337
15.5.2背壓341
15.5.3一種簡單的真實背壓341
15.6反應式繫統和反應式編程342
15.7路線圖342
15.8小結343
第16章CompletableFuture:組合式異步編程344
16.1Future接口344
16.1.1Future接口的局限性346
16.1.2使用CompletableFuture構建異步應用346
16.2實現異步API347
16.2.1將同步方法轉換為異步方法348
16.2.2錯誤處理350
16.3讓你的代碼免受阻塞之苦352
16.3.1使用並行流對請求進行並行操作353
16.3.2使用CompletableFuture發起異步請求353
16.3.3尋找更好的方案355
16.3.4使用定制的執行器356
16.4對多個異步任務進行流水線操作358
16.4.1實現服務358
16.4.2使用Discount服務359
16.4.3構造同步和異步操作360
16.4.4將兩個CompletableFuture對像整合起來,無論它們是否存在依賴363
16.4.5對Future和Completable-Future的回顧364
16.4.6高效地使用超時機制365
16.5響應CompletableFuture的completion事件366
16.5.1對很好價格查詢器應用的優化367
16.5.2付諸實踐368
16.6路線圖369
16.7小結369
第17章反應式編程370
17.1反應式宣言371
17.1.1應用層的反應式編程371
17.1.2反應式繫統373
17.2反應式流以及FlowAPI373
17.2.1Flow類374
17.2.2創建你的第一個反應式應用377
17.2.3使用Processor轉換數據381
17.2.4為什麼Java並未提供FlowAPI的實現383
17.3使用反應式庫RxJava384
17.3.1創建和使用Observable385
17.3.2轉換及整合多個Observable392
第六部分函數式編程以及Java未來的演進
第18章函數式的思考396
18.1實現和維護繫統396
18.1.1共享的可變數據397
18.1.2聲明式編程398
18.1.3為什麼要采用函數式編程399
18.2什麼是函數式編程399
18.2.1函數式Java編程400
18.2.2引用透明性402
18.2.3面向對像的編程和函數式編程的對比402
18.2.4函數式編程實戰403
18.3遞歸和迭代405
18.4小結408
第19章函數式編程的技巧409
19.1無處不在的函數409
19.1.1高階函數410
19.1.2柯裡化411
19.2持久化數據結構412
19.2.1破壞式更新和函數式更新的比較413
19.2.2另一個使用Tree的例子415
19.2.3采用函數式的方法416
19.3Stream的延遲計算418
19.3.1自定義的Stream418
19.3.2創建你自己的延遲列表420
19.4模式匹配425
19.4.1訪問者模式425
19.4.2用模式匹配力挽狂瀾426
19.5雜項429
19.5.1緩存或記憶表429
19.5.2“返回同樣的對像”意味著什麼430
19.5.3結合器431
19.6小結432
第20章面向對像和函數式編程的混合:Java和Scala的比較433
20.1Scala簡介434
20.1.1你好,啤酒434
20.1.2基礎數據結構:List、Set、Map、Tuple、Stream以及Option436
20.2函數440
20.2.1Scala中的一等函數441
20.2.2匿名函數和閉包442
20.2.3柯裡化443
20.3類和trait444
20.3.1更加簡潔的Scala類445
20.3.2Scala的trait與Java8的接口對比446
20.4小結447
第21章結論以及Java的未來448
21.1回顧Java8的語言特性448
21.1.1行為參數化(Lambda以及方法引用)449
21.1.2流449
21.1.3CompletableFuture450
21.1.4Optional450
21.1.5FlowAPI451
21.1.6默認方法451
21.2Java9的模塊繫統451
21.3Java10的局部變量類型推斷453
21.4Java的未來454
21.4.1聲明處型變454
21.4.2模式匹配454
21.4.3更加豐富的泛型形式455
21.4.4對不變性的更深層支持457
21.4.5值類型458
21.5讓Java發展得更快461
21.6寫在最後的話462
附錄A其他語言特性的更新463
附錄B其他類庫的更新467
附錄C如何以並發方式在同一個流上執行多種操作475
附錄DLambda表達式和JVM字節碼483
內容簡介
本書全面介紹了Java 8、9、10版本的新特性,包括Lambda表達式、方法引用、流、默認方法、Optional、CompletableFuture以及新的日期和時間API,是程序員了解Java新特性的經典指南。全書共分六個部分:基礎知識、使用流進行函數式數據處理、使用流和Lambda進行高效編程、無所不在的Java、提升Java的並發性、函數式編程以及Java未來的演進。本書適合Java開發人員閱讀。
作者簡介
(英)拉烏爾-加布裡埃爾·烏爾瑪(Raoul-Gabriel Urma),(意)馬裡奧·富斯科(Mario Fusco),(英)艾倫·米克羅夫特(Alan Mycroft) 著 陸明剛,勞佳 譯
拉烏爾-加布裡埃爾·烏爾瑪(Raoul-Gabriel Urma),劍橋大學計算機科學博士,軟件工程師,培訓師,現任Cambridge Spark公司CEO。在谷歌、eBay、甲骨文和高盛等大公司工作過,並參與過多個創業項目。活躍在技術社區,經常撰寫技術文章,多次受邀在國際會議上做技術講座。
馬裡奧·富斯科(Mario Fusco),Red Hat高級軟件工程師,負責JBoss規則引擎Drools的核心開發。擁有豐富的Java開發經驗,曾領導媒體公司、金融部門等多個行業的企業級項目開發。對函數式編程和領域特定語言等有濃厚興趣,並創建了開放源碼庫lambdaj。
艾倫·米等



"
 
網友評論  我們期待著您對此商品發表評論
 
相關商品
【同作者商品】
拉烏爾加布裡埃爾·烏爾瑪RaoulGa
  本網站暫時沒有該作者的其它商品。
有該作者的商品通知您嗎?
請選擇作者:
拉烏爾加布裡埃爾·烏爾瑪RaoulGa
您的Email地址
在線留言 商品價格為新臺幣
關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
返回頂部