本書(shū)內(nèi)容包括:Scala零基礎(chǔ)入門(mén),Scala面向?qū)ο缶幊涕_(kāi)發(fā),Scala高階函數(shù),Scala模式匹配等。
前言
基礎(chǔ)篇
第1章Scala零基礎(chǔ)入門(mén)
1.1Scala概述
1.2Windows及Linux下Scale運(yùn)行環(huán)境安裝配置
1.2.1軟件工具準(zhǔn)備
1.2.2Windows環(huán)境下的Scala安裝
1.2.3Linux環(huán)境下的Scala安裝
1.2.4Linux環(huán)境下的Hadoop安裝與配置
1.2.5Linux環(huán)境下的Spark安裝與配置
1.3Scala開(kāi)發(fā)環(huán)境搭建和HelloWorld實(shí)例
1.3.1Scala集成開(kāi)發(fā)工具的安裝
1.3.2HelloWorld編程實(shí)例
1.3.3WorkSheet的使用
1.4變量的使用
1.4.1Scala解釋器中的變量示例
1.4.2val變量的定義
1.4.3var變量的定義
1.4.4var變量與val變量的使用比較
1.5函數(shù)的定義、流程控制、異常處理
1.5.1函數(shù)的定義
1.5.2流程控制(if、while、for)
1.5.3異常處理
1.6Tuple、Array、Map與文件操作
1.6.1Tuple元組
1.6.2Array數(shù)組
1.6.3文件操作
1.6.4Map映射
1.7Scala中的apply方法
1.7.1Object中的apply
1.7.2Class中的apply
1.7.3Array數(shù)組的apply實(shí)現(xiàn)
1.8小結(jié)
第2章Scala面向?qū)ο缶幊涕_(kāi)發(fā)
2.1類的定義及屬性
2.1.1類定義
2.1.2帶有g(shù)etter和setter的屬性
2.2主構(gòu)造器、私有構(gòu)造器、構(gòu)造器重載
2.2.1構(gòu)造器重載之輔助構(gòu)造器
2.2.2主構(gòu)造器
2.2.3不同訪問(wèn)權(quán)限的構(gòu)造器
2.3內(nèi)部類和外部類
2.4單例對(duì)象、伴生對(duì)象
2.5繼承:超類的構(gòu)造、重寫(xiě)字段、重寫(xiě)方法
2.5.1超類的構(gòu)造
2.5.2重寫(xiě)字段
2.5.3重寫(xiě)方法
2.6抽象類、抽象字段、抽象方法
2.6.1抽象類
2.6.2抽象字段
2.6.3抽象方法
2.7trait特質(zhì)
2.7.1作為接口使用的trait
2.7.2在對(duì)象中混入trait
2.7.3trait深入解析
2.8多重繼承、多重繼承構(gòu)造器執(zhí)行順序及AOP實(shí)現(xiàn)
2.8.1多重繼承
2.8.2多重繼承構(gòu)造器執(zhí)行順序
2.8.3AOP實(shí)現(xiàn)
2.9包的定義、包對(duì)象、包的引用、包的隱式引用
2.9.1包的定義
2.9.2包對(duì)象
2.9.3包的引用
2.9.4包的隱式引用
2.10包、類、對(duì)象、成員、伴生類、伴生對(duì)象訪問(wèn)權(quán)限
2.10.1包、類、對(duì)象、成員訪問(wèn)權(quán)限
2.10.2伴生類、伴生對(duì)象訪問(wèn)權(quán)限
2.11小結(jié)
第3章Scala高階函數(shù)
3.1匿名函數(shù)
3.2偏應(yīng)用函數(shù)
3.3閉包
3.4SAM轉(zhuǎn)換
3.5Curring函數(shù)
3.6高階函數(shù)
3.7高階函數(shù)在Spark中的應(yīng)用
3.8小結(jié)
中級(jí)篇
第4章Scala模式匹配
4.1模式匹配簡(jiǎn)介
4.2模式匹配類型
4.2.1常量模式
4.2.2變量模式
4.2.3構(gòu)造器模式
4.2.4序列(Sequence)模式
4.2.5元組(Tuple)模式
4.2.6類型模式
4.2.7變量綁定模式
4.3模式匹配與Case Class
4.3.1構(gòu)造器模式匹配原理
4.3.2序列模式匹配原理
4.3.3Sealed Class在模式匹配中的應(yīng)用
4.4模式匹配應(yīng)用實(shí)例
4.4.1for循環(huán)控制結(jié)構(gòu)中的模式匹配
4.4.2正則表達(dá)式中的模式匹配
4.4.3異常處理中的模式匹配
4.4.4Spark源碼中的模式匹配使用
4.5本章小結(jié)
第5章Scala集合
5.1可變集合與不可變集合(Collection)
5.1.1集合的概述
5.1.2集合的相關(guān)操作
5.1.3集合的操作示例
5.2序列(Seq)
5.2.1序列的概述
5.2.2序列的相關(guān)操作
5.2.3序列的操作示例
5.3列表(List)
5.3.1列表的概述
5.3.2列表的相關(guān)操作
5.3.3列表的操作示例
5.4集(Set)
5.4.1集的概述
5.4.2集的相關(guān)操作
5.4.3集的操作示例
5.5映射(Map)
5.5.1映射的概述
5.5.2映射的相關(guān)操作
5.5.3映射的操作示例
5.6迭代器(Iterator)
5.6.1迭代器的概述
5.6.2迭代器的相關(guān)操作
5.6.3迭代器的操作示例
5.7集合的架構(gòu)
5.8小結(jié)
高級(jí)篇
第6章Scala類型參數(shù)
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類型系統(tǒng)
6.4.1類型系統(tǒng)的概述
6.4.2類型系統(tǒng)的操作示例
6.5型變Variance
6.5.1協(xié)變
6.5.2逆變
6.5.3協(xié)變與逆變的操作示例
6.6結(jié)合Spark源碼說(shuō)明Scala類型參數(shù)的使用
6.7小結(jié)
第7章Scala高級(jí)類型
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類型投影實(shí)例
7.6結(jié)構(gòu)類型
7.6.1結(jié)構(gòu)類型概述
7.6.2結(jié)構(gòu)類型示例
7.7復(fù)合類型
7.7.1復(fù)合類型概述
7.7.2復(fù)合類型示例
7.8存在類型
7.8.1存在類型概述
7.8.2存在類型示例
7.9函數(shù)類型
7.9.1函數(shù)類型概述
7.9.2函數(shù)類型示例
7.10抽象類型
7.10.1抽象類型概述
7.10.2抽象類型實(shí)例
7.11Spark源碼中的高級(jí)類型使用
7.12本章小結(jié)
第8章Scala隱式轉(zhuǎn)換
8.1隱式轉(zhuǎn)換函數(shù)
8.1.1隱式轉(zhuǎn)換函數(shù)的定義
8.1.2隱式轉(zhuǎn)換函數(shù)的功能
8.2隱式類與隱式對(duì)象
8.2.1隱式類
8.2.2隱式參數(shù)與隱式值
8.3類型證明中的隱式轉(zhuǎn)換
8.3.1類型證明的定義
8.3.2類型證明使用實(shí)例
8.4上下文界定、視圖界定中的隱式轉(zhuǎn)換
8.4.1Ordering與Ordered特質(zhì)
8.4.2視圖界定中的隱式轉(zhuǎn)換
8.4.3上下文界定中的隱式轉(zhuǎn)換
8.5隱式轉(zhuǎn)換規(guī)則
8.5.1發(fā)生隱式轉(zhuǎn)換的條件
8.5.2不會(huì)發(fā)生隱式轉(zhuǎn)換的條件
8.6Spark源碼中的隱式轉(zhuǎn)換使用
8.6.1隱式轉(zhuǎn)換函數(shù)
8.6.2隱式類
8.6.3隱式參數(shù)
8.7本章小結(jié)
第9章Scala并發(fā)編程
9.1Scala的Actor模型簡(jiǎn)介
9.2Scala Actor的構(gòu)建方式
9.2.1繼承Actor類
9.2.2Actor工具方法
9.3Actor的生命周期
9.3.1start方法的等冪性
9.3.2Actor的不同狀態(tài)
9.4Actor之間的通信
9.4.1Actor之間發(fā)送消息
9.4.2Actor接收消息
9.5使用react重用線程提升性能
9.6Channel通道
9.6.1OutputChannel
9.6.2InputChannel
9.6.3創(chuàng)建和共享channel
9.7同步和Future
9.8Scala并發(fā)編程實(shí)例
9.8.1Scala Actor并發(fā)編程
9.8.2ExecutorService并發(fā)編程
9.9小結(jié)
分布式框架篇
第10章Akka的設(shè)計(jì)理念
10.1Akka框架模型
10.2創(chuàng)建Actor
10.2.1通過(guò)實(shí)現(xiàn)akka.actor.Actor來(lái)創(chuàng)建Actor類
10.2.2使用非缺省構(gòu)造方法創(chuàng)建 Actor
10.2.3創(chuàng)建匿名Actor
10.3Actor API
10.3.1Actor trait基本接口
10.3.2使用DeathWatch進(jìn)行生命周期監(jiān)控
10.3.3Hook函數(shù)的調(diào)用
10.3.4查找Actor
10.3.5消息的不可變性
10.3.6發(fā)送消息
10.3.7轉(zhuǎn)發(fā)消息
10.3.8接收消息
10.3.9回應(yīng)消息
10.3.10終止Actor
10.3.11Become/Unbecome
10.3.12殺死Actor
10.4不同類型的Actor
10.4.1方法派發(fā)語(yǔ)義
10.4.2終止有類型Actor
10.5小結(jié)
第11章Akka核心組件及核心特性剖析
11.1Dispatchers 和 Routers
11.1.1為Actor指定派發(fā)器
11.1.2派發(fā)器的類型
11.1.3郵箱
11.1.4Routers
11.1.5路由的使用
11.1.6遠(yuǎn)程部署router
11.2Supervision和Monitoring
11.2.1Supervision
11.2.2Monitoring
11.3Akka中的事務(wù)
11.3.1STM
11.3.2使用STM事務(wù)
11.3.3讀取Agent事務(wù)中的數(shù)據(jù)
11.3.4更新Agent事務(wù)中的數(shù)據(jù)
11.3.5Actor中的事務(wù)
11.3.6創(chuàng)建Transactor
11.4小結(jié)
第12章Akka程序設(shè)計(jì)實(shí)踐
12.1Akka的配置、日志及部署
12.1.1Akka中配置文件的讀寫(xiě)
12.1.2Akka中日志配置
12.1.3Akka部署及應(yīng)用場(chǎng)景
12.2使用Akka框架實(shí)現(xiàn)單詞統(tǒng)計(jì)
12.3分布式Akka環(huán)境搭建
12.4使用Akka微內(nèi)核部署應(yīng)用
12.5Akka框架在Spark中的運(yùn)用
12.6小結(jié)
第13章Kafka設(shè)計(jì)理念與基本架構(gòu)
13.1Kafka產(chǎn)生的背景
13.2消息隊(duì)列系統(tǒng)
13.2.1概述
13.2.2常用的消息隊(duì)列系統(tǒng)對(duì)比
13.2.3Kafka特點(diǎn)及特性
13.2.4Kafka系統(tǒng)應(yīng)用場(chǎng)景
13.3Kafka設(shè)計(jì)理念
13.3.1專業(yè)術(shù)語(yǔ)解析
13.3.2消息存儲(chǔ)與緩存設(shè)計(jì)
13.3.3消費(fèi)者與生產(chǎn)者模型
13.3.4Push與Pull機(jī)制
13.3.5鏡像機(jī)制
13.4Kafka整體架構(gòu)
13.4.1Kafka基本組成結(jié)構(gòu)
13.4.2Kafka工作流程
13.5Kafka性能分析及優(yōu)化
13.6Kafka未來(lái)研究方向
13.7小結(jié)
第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消息傳送機(jī)制
14.2.5Kafka的可靠性
14.2.6Kafka的高效性
14.3Kafka即將發(fā)布版本核心組件及特性剖析
14.3.1重新設(shè)計(jì)的Consumer
14.3.2Coordinator Rebalance
14.4小結(jié)
第15章Kafka應(yīng)用實(shí)踐
15.1Kafka開(kāi)發(fā)環(huán)境搭建及運(yùn)行環(huán)境部署
15.1.1Kafka開(kāi)發(fā)環(huán)境配置
15.1.2Kafka運(yùn)行環(huán)境安裝與部署
15.2基于Kafka客戶端開(kāi)發(fā)
15.2.1消息生產(chǎn)者(Producer)設(shè)計(jì)
15.2.2消息消費(fèi)者(Consumer)設(shè)計(jì)
15.2.3Kafka消費(fèi)者與生產(chǎn)者配置
15.3Spark Streaming整合Kafka
15.3.1基本架構(gòu)設(shè)計(jì)流程
15.3.2消息消費(fèi)者(Consumer)設(shè)計(jì)——基于Receiver方法
15.3.3消息消費(fèi)者(Consumer)設(shè)計(jì)——基于No Receiver方法
15.3.4消息生產(chǎn)者(Producer)設(shè)計(jì)
15.4小結(jié)
附錄Kafka集群server.properties配置文檔
參考文獻(xiàn)