産品特色
編輯推薦
本書由阿裏Java程序員撰寫,帶你快速進入Kotlin世界。本書基於Kotlin 1.1版本,從Kotlin基礎知識到動手實戰,包含瞭大量精選示例代碼和應用案例。
內容簡介
本書從Kotlin的HelloWorld開始,生動講解Kotlin的基礎知識和實戰案例,分為兩大部分:“基礎知識”部分包括語言基礎、基本數據類型與類型變量、集閤類、泛型、麵嚮對象編程、函數式編程、協程等;“實戰”部分包括Kotlin與Java互操作、使用Kotlin集成Spring Boot開發WEB服務端、使用Kotlin集成Gradle開發、使用Kotlin和Anko的Android開發、使用Kotlin DSL、Kotlin文件IO操作與多綫程、使用Kotlin Native。本書包含瞭大量精選示例代碼和應用案例,為初學者提供瞭實用指南,也幫助熟練的Java開發者快速切換到Kotlin。
作者簡介
陳光劍,資深開發人員,目前就職於阿裏巴巴集團,參與過多種平颱工具的開發,具有豐富的平颱開發經驗,操練過Java、Android、Scala、Groovy等語言進行領域建模、架構設計、工具開發,在工作中積纍瞭大量經驗,善於總結,樂於分享,發布過大量技術文章。
精彩書評
學習一門語言一定會涉及圖書和資料,本書是不可多得的優秀圖書,內容翔實,描述簡潔,對編程語言有深刻的理解,融入瞭自己多年的開發經驗......Kotlin非常新,而且發展也非常快,是一門非常有前景的開發語言,我希望Android和Java程序員都能停下來閱讀這本Kotlin的圖書,能夠係統地瞭解這項技術。
——雷捲,阿裏巴巴70後Java程序員
目錄
序 言
前 言
第一部分 Kotlin語言基礎
第1章 Kotlin簡介 2
1.1 Kotlin簡史 2
1.1.1 Kotlin概述 3
1.1.2 Kotlin元年:2016 3
1.2 快速學習工具 4
1.2.1 雲端IDE 4
1.2.2 本地命令行環境搭建 5
1.2.3 使用IntelliJ IDEA 9
1.2.4 使用Eclipse 13
1.2.5 使用Gradle構建Kotlin項目 17
1.2.6 編程語言學習小結 18
1.3 本章小結 20
第2章 快速開始HelloWorld 21
2.1 命令行版HelloWorld 21
2.2 應用程序版HelloWorld 21
2.3 Web RESTful HelloWorld 24
2.4 Android版的HelloWorld 34
2.5 JavaScript版HelloWorld 39
2.6 本章小結 49
第3章 Kotlin語言基礎 50
3.1 包 50
3.2 聲明變量和值 56
3.3 變量類型推斷 57
3.3.1 省去變量類型 57
3.3.2 使用is運算符進行類型檢測 59
3.4 字符串與其模闆錶達式 59
3.5 流程控製語句 60
3.5.1 if錶達式 60
3.5.2 when錶達式 62
3.5.3 for循環 64
3.5.4 while循環 64
3.5.5 break和continue 65
3.5.6 return 66
3.5.7 標簽 69
3.5.8 throw錶達式 71
3.6 代碼注釋 72
3.7 語法與標識符 73
3.7.1 修飾符 73
3.7.2 關鍵字(保留字) 75
3.7.3 操作符和操作符的重載 81
3.7.4 操作符優先級 82
3.7.5 一元操作符 83
3.7.6 二元操作符 85
3.8 擴展函數和擴展屬性 90
3.8.1 擴展函數 90
3.8.2 擴展屬性 93
3.9 空指針安全 93
3.10 標準庫API簡介 96
3.11 本章小結 97
第4章 基本數據類型與類型係統 98
4.1 什麼是類型 98
4.2 編譯時類型與運行時類型 100
4.2.1 弱類型與強類型 100
4.2.2 靜態類型與動態類型 101
4.2.3 顯式類型與隱式類型 101
4.3 根類型Any 101
4.4 基本類型 102
4.4.1 數字類型 104
4.4.2 字符類型與轉義符 109
4.4.3 布爾類型 111
4.4.4 字符串類型 112
4.4.5 數組類型 117
4.5 可空類型 120
4.5.1 Kotlin中的null 120
4.5.2 可空類型String?與安全調用?. 122
4.5.3 可空性的實現原理 124
4.5.4 可空類型層次體係 126
4.6 kotlin.Unit類型 127
4.7 kotlin.Nothing類型 128
4.8 類型檢測與類型轉換 131
4.8.1 is與!is運算符 131
4.8.2 as運算符 133
4.9 本章小結 134
第二部分 編程進階
第5章 集閤類 136
5.1 集閤類的基本概念 136
5.1.1 集閤類是一種數據結構 137
5.1.2 集閤類是ADT 137
5.1.3 連續存儲和離散存儲 138
5.2 Kotlin集閤類簡介 138
5.3 List 139
5.3.1 創建不可變List 140
5.3.2 創建可變集閤MutableList 142
5.3.3 遍曆List元素 143
5.3.4 List元素操作函數 146
5.3.5 List集閤類的基本運算函數 151
5.3.6 過濾操作函數 159
5.3.7 映射操作函數 166
5.3.8 分組操作函數 169
5.3.9 排序操作符 170
5.3.10 生産操作符 171
5.4 Set 174
5.4.1 空集 174
5.4.2 創建Set 176
5.4.3 使用Java中的Set類 177
5.4.4 Set元素的加減操作plus minus 179
5.5 Map 179
5.5.1 創建Map 180
5.5.2 訪問Map的元素 184
5.5.3 Map操作符函數 186
5.6 本章小結 192
第6章 泛型 193
6.1 泛型簡介 193
6.1.1 泛型與多態 193
6.1.2 為何引進泛型 194
6.1.3 Java與Kotlin中的泛型 195
6.2 型變 197
6.2.1 Java的類型通配符 197
6.2.2 泛型和數組的型變 201
6.3 Kotlin中的泛型 205
6.3.1 out T與in T 205
6.3.2 聲明處型變 206
6.3.3 類型投影 206
6.4 泛型類 207
6.5 泛型函數 208
6.6 本章小結 208
第7章 麵嚮對象編程 209
7.1 麵嚮對象編程思想 209
7.1.1 一切皆是映射 209
7.1.2 二進製01與易經陰陽 211
7.1.3 從麵嚮過程到麵嚮對象 212
7.2 類與構造函數 215
7.2.1 聲明類 216
7.2.2 構造函數 216
7.2.3 類的屬性 218
7.2.4 函數(方法) 219
7.3 抽象類 219
7.3.1 抽象類的定義 219
7.3.2 抽象函數 220
7.3.3 抽象屬性和抽象類 221
7.4 接口 223
7.4.1 接口定義 223
7.4.2 實現接口 224
7.4.3 覆蓋衝突 225
7.4.4 接口中的屬性 225
7.5 抽象類和接口的差異 226
7.6 繼承 227
7.6.1 open類 227
7.6.2 多重繼承 228
7.7 枚舉類 230
7.7.1 枚舉類基本用法 231
7.7.2 初始化枚舉值 231
7.7.3 使用枚舉常量 232
7.8 注解類 233
7.8.1 聲明注解 233
7.8.2 使用注解 234
7.9 單例模式與伴生對象 234
7.9.1 單例模式 234
7.9.2 object對象 235
7.9.3 嵌套object對象 236
7.9.4 匿名object 238
7.9.5 伴生對象 239
7.10 密封類 242
7.11 數據類 243
7.11.1 構造函數中的val/var 243
7.11.2 領域實體類 245
7.11.3 數據類的概念 245
7.11.4 數據類的限製 246
7.11.5 數據類的解構 248
7.11.6 標準數據類Pair和Triple 248
7.12 嵌套類 249
7.12.1 嵌套類:類中的類 249
7.12.2 內部類 250
7.12.3 匿名內部類 250
7.13 委托 252
7.13.1 代理模式 252
7.13.2 類的委托 253
7.13.3 委托屬性 255
7.14 本章小結 260
第8章 函數式編程 261
8.1 函數式編程概述 261
8.1.1 函數式編程與麵嚮對象編程 262
8.1.2 函數式編程基本特性 265
8.1.3 函數式編程核心思想 266
8.2 在Kotlin中使用函數式編程 284
8.2.1 Kotlin中的函數 284
8.2.2 擴展函數 286
8.2.3 中綴函數 286
8.2.4 函數參數 287
8.2.5 函數返迴類型 289
8.2.6 單錶達式函數 289
8.2.7 函數作用域 289
8.2.8 泛型函數 290
8.2.9 高階函數 290
8.2.10 匿名函數 291
8.2.11 Lambda錶達式 291
8.2.12 it:單個參數的隱式名稱 292
8.2.13 閉包 292
8.2.14 帶接收者的函數字麵值 293
8.2.15 具體化的類型參數 293
8.2.16 尾遞歸tailrec 294
8.3 本章小結 295
第9章 輕量級綫程:協程 296
9.1 協程的基本概念 296
9.2 協程的基本操作 297
9.2.1 搭建項目 297
9.2.2 簡單協程示例 298
9.2.3 使用launch函數啓動協程 299
9.2.4 CommonPool對象 299
9.2.5 掛起函數 301
9.2.6 runBlocking函數 302
9.2.7 等待一個協程任務執行完畢 303
9.2.8 取消協程 306
9.2.9 協程取消失效 307
9.2.10 計算代碼協程的取消方式 308
9.2.11 在f?inally中的協程代碼 310
9.2.12 協程中不被取消的代碼塊 312
9.2.13 設置協程超時時間 313
9.3 掛起函數 314
9.3.1 按默認順序執行 314
9.3.2 使用異步並發執行 315
9.4 協程上下文與調度器 316
9.4.1 調度和綫程 316
9.4.2 父子協程 318
9.5 通道與管道 319
9.5.1 通道vs阻塞隊列 319
9.5.2 關閉通道和迭代遍曆元素 320
9.5.3 生産者-消費者模式 321
9.5.4 使用管道生産無限序列 322
9.5.5 管道與無窮質數序列 323
9.5.6 通道緩衝區 324
9.5.7 構建無窮惰性序列 324
9.6 協程與綫程 325
9.6.1 輕量級的協程 325
9.6.2 協程vs守護綫程 326
9.6.3 區彆 327
9.6.4 協程的好處 328
9.6.5 Kotlin協程的內部機製 328
9.7 本章小結 329
第10章 Kotlin與Java互操作 330
10.1 在Kotlin中調用Java 330
10.1.1 調用Okhttp庫示例 331
10.1.2 使用Java的集閤類 332
10.1.3 調用Java中的Getter和Setter 333
10.1.4 調用Java中返迴void的方法 334
10.1.5 調用來自Java中的null 335
10.1.6 使用Java的泛型 336
10.1.7 數組的互操作 337
10.1.8 可變參數的互操作 337
10.1.9 檢查Java中的異常 337
10.1.10 調用Java的Object方法 338
10.1.11 訪問Java靜態成員 340
10.1.12 使用Java的反射 340
10.1.13 SAM轉換 341
10.2 在Java中調用Kotlin 342
10.2.1 訪問Kotlin屬性 342
10.2.2 調用Kotlin的包級函數 344
10.2.3 調用Kotlin中的實例字段 347
10.2.4 調用Kotlin中的靜態字段 348
10.2.5 調用Kotlin中的靜態方法 349
10.2.6 Kotlin與Java的可見性 350
10.2.7 生成默認參數函數的重載 352
10.2.8 顯式聲明Kotlin中的異常 353
10.2.9 關鍵字衝突的互操作 355
10.2.10 Nothing類型 355
10.3 類型映射 356
10.4 Kotlin與Java的簡單實例對比 357
10.5 本章小結 364
第三部分 綜閤實戰
第11章 使用Kotlin集成Spring Boot開發Web服務端 366
11.1 Spring Boot簡介 366
11.2 係統架構技術棧 367
11.3 準備工作 367
11.3.1 創建工程 367
11.3.2 Gradle配置文件說明 369
11.4 數據庫層開發 370
11.4.1 Endpoint監控接口 373
11.4.2 實體類 375
11.4.3 數據訪問層代碼 377
11.5 後端邏輯開發 379
11.5.1 控製器邏輯層 379
11.5.2 啓動初始化CommandLine-Runner 380
11.5.3 應用啓動類 380
11.5.4 Model數據綁定 382
11.5.5 模闆引擎視圖頁麵 383
11.5.6 運行測試 383
11.6 前端後端集成 384
11.6.1 引入前端組件 384
11.6.2 實現寫文章模塊 386
11.6.3 加上導航欄 388
11.6.4 抽取公共模闆文件 389
11.6.5 寫文章的控製器層接口 390
11.6.6 前端Ajax請求 390
11.6.7 文章詳情頁 391
11.6.8 添加Markdown支持 393
11.6.9 文章列錶分頁搜索 395
11.7 Spring 5.0對Kotlin的支持 397
11.8 本章小結 399
第12章 使用Kotlin集成Gradle開發 400
12.1 使用Gradle構建Kotlin工程 400
12.2 使用Kotlin編寫Gradle構建配置文件 405
12.3 本章小結 407
第13章 使用Kotlin和Anko的Android開發 408
13.1 什麼是Anko 408
13.2 快速入門實例 409
13.2.1 功能介紹 410
13.2.2 使用Android Studio新建項目 411
13.2.3 設計UI界麵主題顔色 415
13.2.4 核心依賴配置 417
13.2.5 代碼編寫 421
13.2.6 運行測試 435
13.3 本章小結 437
第14章 使用 Kotlin DSL 438
14.1 什麼是DSL 439
14.2 Kotlin的DSL特性支持 441
14.3 使用kotlinx.html DSL寫前端代碼 442
14.4 實現一個極簡的HTTP DSL 447
14.5 本章小結 454
第15章 Kotlin 文件IO操作與多綫程 455
15.1 Kotlin IO基本操作 455
15.2 正則錶達式 463
15.3 Kotlin的多綫程 466
15.4 本章小結 469
第16章 使用 Kotlin Native 470
16.1 Kotlin Native簡介 470
16.2 快速開始Hello World 471
16.3 Kotlin Native與C語言互操作 477
16.4 Kotlin Native編譯器konan簡介 486
16.5 本章小結 494
前言/序言
Kotlin是JetBrains團隊開發的一門現代的、注重工程實用性的靜態類型編程語言,JetBrains團隊以開發瞭世界上最好用的IDE而著稱。Kotlin於2010年推齣,並在2011年開源。Kotlin充分藉鑒並汲取瞭Java、Scala、Groovy、C#、Gosu、JavaScript、Swift等多門傑齣語言的優秀特性,語法簡單優雅、錶現力豐富、抽象擴展方便、代碼可重用性好,同時也支持麵嚮對
Kotlin極簡教程 下載 mobi epub pdf txt 電子書 格式