Scala 語言基礎與開發實戰

王家林, 等

  • 出版商: 機械工業
  • 出版日期: 2016-07-26
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 407
  • 裝訂: 平裝
  • ISBN: 7111541693
  • ISBN-13: 9787111541691
  • 相關分類: JVM 語言
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書分為基礎篇、中級篇、高級篇及分佈式框架四大部分,從Scala零基礎入門,步步深入,引導讀者由淺入深地學習Scala及其應用。本書從手把手指引讀者搭建Scala語言開發環境開始,詳細介紹了Scala的語法基礎,以代碼實例形式分別講解了Scala面向對象開發及函數式編程;在此基礎上進一步深入講解了Scala的中高級語法特性,包括模式匹配、集合、類型參數、高級類型、隱式轉化及各語法特性在Spark源碼中的應用解析,並引出Scala的Actor模型及其應用詳解。本書還詳細介紹了以Scala為基礎的兩大框架——Akka和Kafka。
本書每章開始均有重點介紹,以引導讀者有目的、有重點地閱讀或查閱。另外,針對不同語法特性的源碼及應用解析是本書的另一大特點。
本書適合具備一定編程語言基礎、對大數據開發有興趣的在校學生,同時,對有面向對象編程或函數式編程經驗的人員,本書也可以作為開發實例的參考書籍。

目錄大綱

前言 
基礎篇 
第1章Scala零基礎入門 
11Scala概述 
12Windows及Linux下Scale運行環境安裝配置 
121軟件工具準備 
122Windows環境下的Scala安裝 
123Linux環境下的Scala安裝 
124Linux環境下的Hadoop安裝與配置 
125Linux環境下的Spark安裝與配置 
13Scala開發環境搭建和HelloWorld實例 
131Scala集成開發工具的安裝 
132HelloWorld編程實例 
133WorkSheet的使用 
14變量的使用 
141Scala解釋器中的變量示例 
142val變量的定義 
143var變量的定義 
144var變量與val變量的使用比較 
15函數的定義、流程控制、異常處理 
151函數的定義 
152流程控制(if、while、for) 
153異常處理 
16Tuple、Array、Map與文件操作 
161Tuple元組 
162Array數組 
163文件操作 
164Map映射 
17Scala中的apply方法 
171Object中的apply 
172Class中的apply 
173Array數組的apply實現 
18小結 

第2章Scala面向對象編程開發 
21類的定義及屬性 
211類定義 
212帶有getter和setter的屬性 
22主構造器、私有構造器、構造器重載 
221構造器重載之輔助構造器 
222主構造器 
223不同訪問權限的構造器 
23內部類和外部類 
24單例對象、伴生對象 
25繼承:超類的構造、重寫字段、重寫方法 
251超類的構造 
252重寫字段 
253重寫方法 
26抽象類、抽象字段、抽象方法 
261抽象類 
262抽象字段 
263抽象方法 
27trait特質 
271作為接口使用的trait 
272在對象中混入trait 
273trait深入解析 
28多重繼承、多重繼承構造器執行順序及AOP實現 
281多重繼承 
282多重繼承構造器執行順序 
283AOP實現 
29包的定義、包對象、包的引用、包的隱式引用 
291包的定義 
292包對象 
293包的引用 
294包的隱式引用 
210包、類、對象、成員、伴生類、伴生對象訪問權限 
2101包、類、對象、成員訪問權限 
2102伴生類、伴生對象訪問權限 
211小結 

第3章Scala高階函數 
31匿名函數 
32偏應用函數 
33閉包 
34SAM轉換 
35Curring函數 
36高階函數 
37高階函數在Spark中的應用 
38小結 
中級篇 

第4章Scala模式匹配 
41模式匹配簡介 
42模式匹配類型 
421常量模式 
422變量模式 
423構造器模式 
424序列(Sequence)模式 
425元組(Tuple)模式 
426類型模式 
427變量綁定模式 
43模式匹配與Case Class 
431構造器模式匹配原理 
432序列模式匹配原理 
433Sealed Class在模式匹配中的應用 
44模式匹配應用實例 
441for循環控制結構中的模式匹配 
442正則表達式中的模式匹配 
443異常處理中的模式匹配 
444Spark源碼中的模式匹配使用 
45本章小結 

第5章Scala集合 
51可變集合與不可變集合(Collection) 
511集合的概述 
512集合的相關操作 
513集合的操作示例 
52序列(Seq) 
521序列的概述 
522序列的相關操作 
523序列的操作示例 
53列表(List) 
531列表的概述 
532列表的相關操作 
533列表的操作示例 
54集(Set) 
541集的概述 
542集的相關操作 
543集的操作示例 
55映射(Map) 
551映射的概述 
552映射的相關操作 
553映射的操作示例 
56迭代器(Iterator) 
561迭代器的概述 
562迭代器的相關操作 
563迭代器的操作示例 
57集合的架構 
58小結 
高級篇 

第6章Scala類型參數 
61泛型 
611泛型的概述 
612泛型的操作示例 
62界定 
621上下界界定 
622視圖界定 
623上下文界定 
624多重界定 
625界定的操作示例 
63類型約束 
631類型約束的概述 
632類型約束的操作示例 
64類型系統 
641類型系統的概述 
642類型系統的操作示例 
65型變Variance 
651協變 
652逆變 
653協變與逆變的操作示例 
66結合Spark源碼說明Scala類型參數的使用 
67小結
 
第7章Scala高級類型 
71單例類型 
711單例類型概述 
712單例類型示例 
72類型別名 
721類型別名概述 
722類型別名示例 
73自身類型 
731自身類型概述 
732自身類型示例 
74中置類型 
741中置類型概述 
742中置類型示例 
75類型投影 
751類型投影概述 
752類型投影實例 
76結構類型 
761結構類型概述 
762結構類型示例 
77復合類型 
771復合類型概述 
772復合類型示例 
78存在類型 
781存在類型概述 
782存在類型示例 
79函數類型 
791函數類型概述 
792函數類型示例 
710抽象類型 
7101抽象類型概述 
7102抽象類型實例 
711Spark源碼中的高級類型使用 
712本章小結 

第8章Scala隱式轉換 
81隱式轉換函數 
811隱式轉換函數的定義 
812隱式轉換函數的功能 
82隱式類與隱式對象 
821隱式類 
822隱式參數與隱式值 
83類型證明中的隱式轉換 
831類型證明的定義 
832類型證明使用實例 
84上下文界定、視圖界定中的隱式轉換 
841Ordering與Ordered特質 
842視圖界定中的隱式轉換 
843上下文界定中的隱式轉換 
85隱式轉換規則 
851發生隱式轉換的條件 
852不會發生隱式轉換的條件 
86Spark源碼中的隱式轉換使用 
861隱式轉換函數 
862隱式類 
863隱式參數 
87本章小結 

第9章Scala並發編程 
91Scala的Actor模型簡介 
92Scala Actor的構建方式 
921繼承Actor類 
922Actor工具方法 
93Actor的生命周期 
931start方法的等冪性 
932Actor的不同狀態 
94Actor之間的通信 
941Actor之間發送消息 
942Actor接收消息 
95使用react重用線程提升性能 
96Channel通道 
961OutputChannel 
962InputChannel 
963創建和共享channel 
97同步和Future 
98Scala並發編程實例 
981Scala Actor並發編程 
982ExecutorService並發編程 
99小結 
分佈式框架篇 

第10章Akka的設計理念 
101Akka框架模型 
102創建Actor 
1021通過實現akkaactorActor來創建Actor類 
1022使用非默認構造方法創建 Actor 
1023創建匿名Actor 
103Actor API 
1031Actor trait基本接口 
1032使用DeathWatch進行生命周期監控 
1033Hook函數的調用 
1034查找Actor 
1035消息的不可變性 
1036發送消息 
1037轉發消息 
1038接收消息 
1039回應消息 
10310終止Actor 
10311Become/Unbecome 
10312殺死Actor 
104不同類型的Actor 
1041方法派發語義 
1042終止有類型Actor 
105小結 

第11章Akka核心組件及核心特性剖析 
111Dispatchers 和 Routers 
1111為Actor指定派發器 
1112派發器的類型 
1113郵箱 
1114Routers 
1115路由的使用 
1116遠程部署router 
112Supervision和Monitoring 
1121Supervision 
1122Monitoring 
113Akka中的事務 
1131STM 
1132使用STM事務 
1133讀取Agent事務中的數據 
1134更新Agent事務中的數據 
1135Actor中的事務 
1136創建Transactor 
114小結 

第12章Akka程序設計實踐 
121Akka的配置、日誌及部署 
1211Akka中配置文件的讀寫 
1212Akka中日誌配置 
1213Akka部署及應用場景 
122使用Akka框架實現單詞統計 
123分佈式Akka環境搭建 
124使用Akka微內核部署應用 
125Akka框架在Spark中的運用 
126小結 

第13章Kafka設計理念與基本架構 
131Kafka產生的背景 
132消息隊列系統 
1321概述 
1322常用的消息隊列系統對比 
1323Kafka特點及特性 
1324Kafka系統應用場景 
133Kafka設計理念 
1331專業術語解析 
1332消息存儲與緩存設計 
1333消費者與生產者模型 
1334Push與Pull機制 
1335鏡像機制 
134Kafka整體架構 
1341Kafka基本組成結構 
1342Kafka工作流程 
135Kafka性能分析及優化 
136Kafka未來研究方向 
137小結 

第14章Kafka核心組件及核心特性剖析 
141Kafka核心組件剖析 
1411Producers 
1412Consumers 
1413Low Level Consumer 
1414High Level Consumer 
142Kafka核心特性剖析 
1421Topic、Partitions 
1422Replication和Leader Election 
1423Consumer Rebalance 
1424消息傳送機制 
1425Kafka的可靠性 
1426Kafka的高效性 
143Kafka即將發布版本核心組件及特性剖析 
1431重新設計的Consumer 
1432Coordinator Rebalance 
144小結 

第15章Kafka應用實踐 
151Kafka開發環境搭建及運行環境部署 
1511Kafka開發環境配置 
1512Kafka運行環境安裝與部署 
152基於Kafka客戶端開發 
1521消息生產者(Producer)設計 
1522消息消費者(Consumer)設計 
1523Kafka消費者與生產者配置 
153Spark Streaming整合Kafka 
1531基本架構設計流程 
1532消息消費者(Consumer)設計——基於Receiver方法 
1533消息消費者(Consumer)設計——基於No Receiver方法 
1534消息生產者(Producer)設計 
154小結 
附錄Kafka集群serverproperties配置文檔 
參考文獻