第1章 Kotlin是什麼 1
1.1 初識Kotlin 1
1.2 語言特性 2
1.2.1 Kotlin與Java完全互操作 3
1.2.2 擴展函數與擴展屬性 4
1.2.3 不可空類型與空安全 5
1.2.4 一等函數支持 6
1.2.5 智能類型推斷 6
1.3 編程哲學 6
1.4 學習工具 7
1.4.1 雲端IDE 7
1.4.2 命令行REPL 7
1.4.3 使用IDEA 8
1.5 為什麼要學Kotlin 9
1.6 JVM語言生態 12
1.7 本章小結 16
第2章 Kotlin語法基礎 17
2.1 變量和標識符 17
2.2 關鍵字與修飾符 18
2.3 流程控製語句 21
2.3.1 if錶達式 22
2.3.2 when錶達式 23
2.3.3 for循環 24
2.3.4 while循環 25
2.3.5 break和continue 26
2.3.6 return返迴 26
2.3.7 標簽(label) 29
2.3.8 throw錶達式 30
2.4 操作符與重載 30
2.4.1 操作符優先級 31
2.4.2 一元操作符 32
2.4.3 二元操作符 33
2.5 包聲明 38
2.6 本章小結 40
第3章 類型係統與可空類型 41
3.1 類型係統 41
3.1.1 類型係統的作用 41
3.1.2 Java類型係統 42
3.1.3 Kotlin類型係統 43
3.2 可空類型 45
3.3 安全操作符 46
3.3.1 安全調用符“?” 47
3.3.2 非空斷言“!!” 48
3.3.3 Elvis運算符“?:” 48
3.4 特殊類型 48
3.4.1 Unit類型 48
3.4.2 Nothing與Nothing?類型 49
3.4.3 Any與Any?類型 51
3.5 類型檢測與類型轉換 52
3.5.1 is運算符 52
3.5.2 類型自動轉換 53
3.5.3 as運算符 54
3.6 本章小結 54
第4章 類與麵嚮對象編程 55
4.1 麵嚮對象編程簡史 55
4.2 聲明類 58
4.2.1 空類 58
4.2.2 聲明類和構造函數 58
4.3 抽象類與接口 61
4.3.1 抽象類與抽象成員 62
4.3.2 接口 64
4.4 object對象 65
4.5 數據類 66
4.5.1 創建數據類 66
4.5.2 數據類自動創建的函數 69
4.5.3 數據類的語法限製 69
4.5.4 Pair和Triple 69
4.6 注解 70
4.7 枚舉 72
4.8 內部類 73
4.8.1 普通嵌套類 73
4.8.2 嵌套內部類 74
4.8.3 匿名內部類 74
4.9 本章小結 75
第5章 函數與函數式編程 76
5.1 函數式編程簡介 77
5.2 聲明函數 77
5.3 Lambda錶達式 78
5.4 高階函數 79
5.5 Kotlin中的特殊函數 80
5.5.1 run()函數 80
5.5.2 apply()函數 81
5.5.3 let()函數 82
5.5.4 also()函數 83
5.5.5 with()函數 83
5.6 本章小結 84
第6章 擴展函數與屬性 85
6.1 擴展函數 86
6.1.1 給String類擴展兩個函數 86
6.1.2 給List類擴展一個過濾函數 87
6.2 擴展屬性 89
6.3 擴展的實現原理 90
6.4 擴展中的this關鍵字 91
6.5 本章小結 91
第7章 集閤類 92
7.1 集閤類概述 92
7.1.1 常用的3種集閤類 92
7.1.2 Kotlin集閤類繼承層次 93
7.2 不可變集閤類 94
7.3 創建集閤類 95
7.4 遍曆集閤中的元素 97
7.5 映射函數 98
7.6 過濾函數 99
7.7 排序函數 100
7.8 元素去重 101
7.9 本章小結 101
第8章 泛型 102
8.1 為何引入泛型 102
8.2 在類、接口和函數上使用泛型 104
8.2.1 泛型接口 104
8.2.2 泛型類 105
8.2.3 泛型函數 106
8.3 類型上界 106
8.4 協變與逆變 106
8.4.1 協變 108
8.4.2 逆變 111
8.4.3 PECS 111
8.5 out T與in T 112
8.6 類型擦除 112
8.7 本章小結 113
第9章 文件I/O操作、正則錶達式與多綫程 114
9.1 文件I/O操作 114
9.1.1 讀文件 115
9.1.2 寫文件 116
9.1.3 遍曆文件樹 117
9.2 網絡I/O 118
9.3 執行Shell命令 119
9.4 正則錶達式 120
9.4.1 構造Regex錶達式 120
9.4.2 Regex函數 120
9.4.3 使用Java的正則錶達式類 123
9.5 多綫程編程 123
9.5.1 創建綫程 123
9.5.2 同步方法和塊 125
9.5.3 可變字段 125
9.6 本章小結 126
第10章 使用Kotlin創建DSL 127
10.1 什麼是DSL 127
10.1.1 內部DSL 128
10.1.2 外部DSL 128
10.2 Kotlin的DSL特性支持 129
10.3 實現集閤類的流式Kotlin DSL 130
10.4 實現一個SQL風格的集閤類 131
10.5 本章小結 133
第11章 運算符重載與約定 134
11.1 什麼是運算符重載 134
11.2 重載二元算術運算符 137
11.3 重載自增自減一元運算符 139
11.4 重載比較運算符 141
11.5 重載計算賦值運算符 143
11.6 本章小結 144
第12章 元編程、注解與反射 145
12.1 元編程簡介 145
12.2 注解 146
12.2.1 聲明注解 146
12.2.2 使用注解 147
12.2.3 處理注解 149
12.3 反射 151
12.3.1 類引用 152
12.3.2 函數引用 153
12.3.3 屬性引用 153
12.3.4 綁定函數和屬性引用 154
12.4 使用反射獲取泛型信息 154
12.5 本章小結 158
第13章 Kotlin集成Spring Boot服務端開發 159
13.1 用Spring Boot快速開發Restful Hello World 159
13.1.1 Spring Initializr 159
13.1.2 創建Spring Boot項目 160
13.2 係統功能與技術棧 167
13.3 準備工作 167
13.4 配置數據層 170
13.5 數據持久層開發 170
13.5.1 數據庫錶結構 170
13.5.2 配置JPA 171
13.6 JSON數據解析 175
13.7 數據入庫邏輯實現 176
13.8 定時調度任務 177
13.9 HTTP接口開發 178
13.9.1 實現分頁查詢接口 178
13.9.2 @Query注解與 #{#entityName} 179
13.9.3 Pageable與Page 180
13.10 視圖模闆開發 184
13.10.1 前端代碼結構 185
13.10.2 實現後端分頁 187
13.10.3 實現收藏和刪除圖片的功能 191
13.10.4 搜索關鍵字管理 194
13.10.5 使用協程實現異步爬蟲任務 200
13.10.6 圖片存入數據庫並在前端展現 201
13.11 本章小結 203
第14章 使用Kotlin進行Android開發 204
14.1 快速開發Hello World 205
14.1.1 準備工作 205
14.1.2 創建基於Kotlin的Android項目 207
14.1.3 工程目錄文件說明 210
14.1.4 安裝運行 213
14.2 綜閤項目實戰:開發一個電影指南應用程序 214
14.2.1 創建 Kotlin Android 項目 214
14.2.2 啓動主類ItemListActivity 219
14.2.3 AppCompatActivity類介紹 222
14.2.4 Activity生命周期 224
14.2.5 Kotlin Android Extensions插件 226
14.2.6 詳情頁ItemDetailActivity 231
14.2.7 碎片事務類FragmentTransaction 235
14.2.8 Fragment 生命周期 239
14.2.9 測試數據類DummyContent 244
14.2.10 創建領域對象類Movie 244
14.2.11 JSON數據解析 245
14.2.12 電影列錶頁麵 246
14.2.13 視圖數據適配器ViewAdapter 250
14.2.14 視圖中圖像的展示 251
14.2.15 電影詳情頁麵 253
14.2.16 電影源數據的獲取 257
14.2.17 配置 AndroidManifest.xml 259
14.2.18 打包安裝測試 259
14.3 本章小結 260
· · · · · · (
收起)