《Kotin 編程思想·實戰》目錄

《Kotin 編程思想·實戰》目錄


《Kotlin極簡教程》正式上架:

點擊這里 > 去京東商城購買閱讀

點擊這里 > 去天貓商城購買閱讀


第1章 JVM語言家族概覽

1.1 編程語言簡史

1.2 程序執行的三種方式
1.2.1 編譯執行
1.2.2 解釋執行
1.2.3 虛擬機執行

1.3 JVM概述
1.3.1 Java源代碼編譯執行過程
1.3.2 Java Class文件簡介
1.3.3 JVM字節碼執行過程

1.4 JVM語言家族
1.4.1 Scala
1.4.2 Groovy
1.4.3 Clojure
1.4.4 Kotlin
1.4.5 Xtend

第2章 Kotlin簡介
2.1 kotlin簡史

2.2 快速學習工具
2.2.1 云端IDE
2.2.2 本地命令行環境搭建
2.2.3 Kotlin REPL
2.2.4 使用IntelliJ IDEA
2.2.5 使用Gradle構建工程

第3章 快速開始:HelloWorld

3.1 命令行的HelloWorld

3.2 應用程序版HelloWorld

3.3 Web RESTFul HelloWorld

3.4 Android版的HelloWorld

3.5 JavaScript(Canvas) 版HelloWorld

第4章 kotlin代碼執行過程

4.1 kotlinc執行原理分析

4.2 kotlin代碼執行過程

4.3 Kt.class與Java.class區別

第5章 Kotlin語言基礎

5.1 基礎語法
5.1.1 包(package): package打包與import導包
5.1.2 變量
5.1.3 表達式
5.1.4 代碼塊
5.1.5 分支控制流
5.1.6 循環
5.1.7 代碼注釋
5.1.8 異常

5.2 標識符
5.2.1 修飾符
5.2.2 關鍵字(保留字)
5.2.3 運算符
5.2.4 賦值符

5.3 函數
5.3.1 main函數
5.3.2 定義函數
5.3.3 包級函數
5.3.4 Lambda表達式
5.3.5 閉包
5.3.6 匿名函數

5.4 特色功能
5.4.1 函數拓展和屬性拓展(Extensions)
5.4.2 屬性代理
5.4.3 委托(Delegate)
5.4.4 空指針安全
5.4.5 Lazy Evaluation

第6章 類型系統

6.1 編譯時類型與運行時類型

6.2 根類型Any
6.2.1 對象相等性

6.3 基本類型(Primitive Types)
6.3.1 Number: 包含整型與浮點型等
6.3.2 Char: 字符類型(Character)
6.3.3 Boolean: 布爾類型
6.3.4 String: 字符串類型
6.3.5 Array: 數組類型
6.3.6 原生數組類型

6.4 特殊類型
6.4.1 kotlin.Any
6.4.2 kotlin.Nothing
6.4.3 kotlin.Unit
6.4.4 kotlin.KClass<T>

6.5 可空類型(Nullable Types)
6.6 函數類型( Functional Types)
6.6.1 閉包類型

6.7 類型檢測與轉型
6.7.1 is,!is運算符
6.7.2 as運算符

6.8 類型轉換

6.9 類型別名typealias

6.10 泛型

第7章 面向對象編程(OOP)

7.1 面向對象思想

7.2 類與繼承
7.2.1 類
7.2.1.1 抽象類
7.2.1.2 接口
7.2.1.3 枚舉
7.2.1.4 注解
7.2.1.5 靜態類與伴生對象
7.2.1.6 sealed 密封類
7.2.1.7 data 數據類
7.2.1.8 嵌套類Nested Class
7.2.1.9 內部類Inner Class
7.2.1.10 匿名內部類Inner Class

7.2.2 聲明類
7.2.3 類修飾符
7.2.4 構造函數
7.2.4.1 主構造函數
7.2.4.2 次構造函數

7.2.5 類的屬性(數據結構)
7.2.6 類的行為(算法函數)
7.2.7 接口與抽象類
7.2.8 接口的默認實現
7.2.9 繼承
7.2.10 實現接口
7.2.11 函數override重載

7.3 類的實例對象
7.3.1 新建對象
7.3.2 對象屬性(數據結構)
7.3.3 對象行為(算法函數)

7.4 委托
7.4.1 類的委托
7.4.2 屬性的委托

第8章 函數式編程(FP)

8.1 函數式編程概述
8.1.1 面向對象編程OOP特征
8.1.2 函數式編程FP特征

8.2 Kotlin函數式編程
8.2.1 函數是什么
8.2.2 函數指針
8.2.3 復合函數(高階函數)
8.2.4 閉包(closure)
8.2.5 Lambda表達式(匿名函數)
8.2.6 內聯函數(inline)
8.2.7 本地函數(Local Functions)
8.2.8 命名參數(NamedParameters)
8.2.9 外部函數external
8.2.10 尾遞歸tailrec

8.3 函數式Stream API
8.3.1 filter函數
8.3.2 map函數
8.3.3 forEach

第9章 Kotlin與Java互操作(Interoperability)

9.1 使用工具互相轉換
9.1.1 將 Java 轉換為 Kotlin
9.1.2 將 Kotlin 轉換為 Java
9.1.3 兼容 Java 的缺點

9.2 Kotlin與Java互操作
9.2.1 Kotlin無縫調用第三方jar庫
9.2.2 執行shell
9.2.3 文件操作
9.2.4 多線程代碼

9.3 Kotlin與Java的區別
9.3.1 void 與 Unit
9.3.2 反射獲取類的 Class
9.3.3 Java 與 Kotlin 關鍵字沖突的處理
9.3.4 static 方法與伴生對象companion object
9.3.5 包級別函數
9.3.6 重載必須使用override

第10章 集合類與泛型

10.1 Kotlin集合類
10.1.1 不可變集合類
10.1.1.1 List
10.1.1.2 Set
10.1.1.3 Map

10.1.2 可變集合類

10.1.2.1 MutableList<E>
10.1.2.2 MutableSet<E>
10.1.2.3 MutableMap<K, V>

10.2 泛型與類型安全
10.2.1 類型參數
10.2.2 類型推測
10.2.3 協變與逆變

10.3 類型上下界

第11章 輕量級線程:協程(Coroutines)

11.1 協程概念

11.2 協程的基本操作
11.2.1 創建
11.2.2 啟動
11.2.3 暫停
11.2.4 繼續

11.3 競爭條件

11.4 同步

11.5 實現異步

第12章 使用Kotlin開發Web應用

12.1 Kotlin集成Spring Boot開發Web應用

12.1.1 Spring Boot簡介
12.1.2 Kotlin集成Spring Boot

12.2 Spring 5 對 Kotlin的支持
12.2.1 函數式風格注冊Bean
12.2.2 函數式風格開發Web應用
12.2.3 基于Kotlin Script 的模板引擎

12.3 使用Kotlin的Web框架Ktor開發Web應用

12.4 基于Kotlin Script的模板引擎

第13章 使用Kotlin實現DSL

13.1 領域特定語言DSL
13.2 Groovy的DSL語法
13.3 Kotlin使用閉包構建 DSL

第14章 使用Kotlin開發JavaScript代碼
14.1 Kotlin代碼編譯成js過程
14.2 使用Kotlin開發JavaScript代碼

第15章 使用Kotlin開發Android程序

第16章 使用Kotlin Native開發原生應用

第17章 KOTLIN語言生態

17.1 測試(Testing)框架
17.2 依賴注入(Dependency Injection)框架
17.3 JSON序列化(JSON serialization)框架
17.4 Web 框架
17.5 數據庫訪問(Database access)框架
17.6 工具類(Utilities)
17.7 桌面編程(Desktop programming)
17.8 Http庫
17.9 并發庫kotlinx.coroutines

第18章 附錄 & 參考資料

https://github.com/EasyKotlin/kotlin-in-action
Awesome Kotlin: https://kotlin.link/
Kotlin項目Github源碼:https://github.com/JetBrains/kotlin
Kotlin語言規范:http://jetbrains.github.io/kotlin-spec/
在線體驗學習Kotlin語言:https://try.kotlinlang.org
官網文檔:http://kotlinlang.org/docs/
https://github.com/trending?l=kotlin
https://github.com/EasyKotlin/Kotlin-for-Android-Developers
https://github.com/EasyKotlin/Bandhook-Kotlin
https://spring.io/blog/2017/01/04/introducing-kotlin-support-in-spring-framework-5-0
xtend: http://www.eclipse.org/xtend/documentation/index.html

Kotin 編程思想.png

Kotlin 開發者社區

國內第一Kotlin 開發者社區公眾號,主要分享、交流 Kotlin 編程語言、Spring Boot、Android、React.js/Node.js、函數式編程、編程思想等相關主題。

開發者社區 QRCode.jpg
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,702評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,143評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,553評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,620評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,416評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,940評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,024評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,170評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,709評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,597評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,291評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,029評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,407評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,663評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,403評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,746評論 2 370

推薦閱讀更多精彩內容