發表於2024-12-24
揭秘Kotlin編程原理 pdf epub mobi txt 電子書 下載
Kotlin的底層是基於Java虛擬機(JVM)的,而《揭秘 Kotlin 編程原理》的作者恰恰是口碑暢銷好書《揭秘Java虛擬機:JVM設計原理與實現》的作者,他對Kotlin語言的透徹理解和分析,以淺顯易懂的形式完整地濃縮在本書中。
因此,在《揭秘 Kotlin 編程原理》中,讀者不僅能清晰地瞭解Kotlin的語法、高級特性,還能真正地掌握Kotlin背後的實現機製和設計哲學,形成對Kotlin語言既直觀、又深刻的認識——在此基礎上,讀者能準確、快速地上手實踐,大大提升自己的移動開發能力。
例如,Kotlin在不違反JVM規範的基礎上,融閤瞭眾多編程語言的特性:它打破瞭Java封閉的徹底性,讓開發者可以體驗“麵嚮過程”編程的感覺;它充分吸收瞭其他編輯語言中的好特性,提供瞭諸如VB語言中的“with語法”……此外,它提供瞭這樣一種能力,不用修改原有類,也無須通過繼承的方式,就能為某個類增加新的行為,等等。
Kotlin的這些特性和實現機製,可以幫助開發者掃清開發道路上的一些障礙,讓開發變得更加簡單!《揭秘Kotlin編程原理》是一本值得擁有,能切實幫助讀者加薪提職的好書!
Kotlin被榖歌宣布為官方語言以來,引發瞭極大的關注,並成為學習的熱點。《揭秘Kotlin編程原理》主要從封裝、繼承和多態三個方麵全麵介紹瞭Kotlin麵嚮對象設計的語法特性及其背後實現方式。全書可分為基礎篇、實戰篇與提高篇,內容上層層深入,揭示瞭Kotlin對屬性包裝、多種形態的函數定義方式、以及各種特殊類型的定義等方麵的背後實現機製。《揭秘Kotlin編程原理》適閤各種編程語言的開發者閱讀,不管你是Java開發、Kotlin開發、Android開發,還是PHP、JSP,或者是C、C++、VB、Go語言的愛好者,都可以翻開閱讀。因為裏麵總會有讓你感到熟悉的一些語言特性,當你看到Kotlin中也有這樣一種特性的時候,你一定會會心一笑!
阿裏巴巴技術工程師,關注Java,現任職於菜鳥網絡,負責中間件開發。著有《揭秘Java虛擬機:JVM設計原理與實現》一書,倍受讀者好評。
Kotlin語言對Java語言特性的易用性進行瞭全方位的改進,越來越貼近廣大開發者的習慣。我本人*看中的是Kotlin未來對JavaScript和Native的支持,那時Kotlin會在各個編程領域得到廣泛應用。
《揭秘Kotlin編程原理》從語言的本質方麵對Kotlin進行瞭全麵講解,對於學習Kotlin語言的Java開發者,是一本難得的技術書籍。
——張建鋒,永源中間件共同創始人
Kotlin語言剛剛齣來時,便令人眼前一亮!它的函數式編程、各種語法糖、代碼精簡性以及和Java代碼的兼容性,讓很多人覺得它取代Java隻是時間問題,引發瞭業界極大的學習熱情。
目前市麵上還沒有見到剖析Kotlin內部機製的著作。暢銷好書《揭秘Java虛擬機:JVM設計原理與實現》的作者,基於多年來對Java虛擬機的深刻理解,在第一時間研究瞭Kotlin語言,並將自己對Kotlin的透徹理解條分縷析地分享在這本《揭秘Kotlin編程原理》中:從淺顯易懂的入門知識到豁然開朗的原理分析,使讀者不僅能夠知其然,並且能夠知其所以然,從而能得心應手地運用好Kotlin。
——占軍(公眾號:占小狼的博客),美團點評基礎架構組技術專傢
Java是過去的20年裏非常成功的編程語言,但是由於它是一種通用的靜態類型的語言,在解決特定領域問題時會顯得非常“笨重”,於是湧現齣瞭很多能在JVM上使用的非Java語言。Kotlin是JVM上眾多語言中的新寵,它完全兼容Java,提供瞭很多非常有趣的語法糖,支持函數式編程,*關鍵的是,和Java相比,它能大幅度地減少代碼量。
《揭秘Kotlin編程原理》對Kotlin的關鍵語法和核心特性進行瞭深入的講解,通過與其他語言(Java、C++)的比較以及直達JVM字節碼的分析,為有編程經驗尤其是對Java語言有經驗的讀者迅速掌握Kotlin語言構建瞭一條快速通道。讓我們跟著作者一起加速一起飛。
——駱昊,北京韆鋒互聯(成都)科技有限公司技術總監
1 快速入門 1
1.1 簡介 1
1.2 編寫第一個Hello World程序 3
1.3 程序結構 10
1.3.1 Kotlin源碼結構 10
1.3.2 包聲明與導入 11
1.3.3 後綴名 14
1.4 Kotlin標準庫 14
2 基本語法 19
2.1 基本類型 19
2.1.1 數字 20
2.1.2 字符串 23
2.2 變量與常量 24
2.2.1 常量 24
2.2.2 屬性包裝 25
2.3 函數 30
2.3.1 函數聲明 30
2.3.2 閉包 35
2.3.3 lambda錶達式 40
2.3.4 內聯函數 54
3 封裝 58
3.1 構造函數與實例化 60
3.1.1 構造函數漫談 60
3.1.2 Kotlin構造函數 62
3.1.3 簡化的主構造函數 63
3.1.4 二級構造函數 66
3.1.5 C++構造函數與參數列錶 69
3.1.6 默認構造函數與覆蓋 71
3.1.7 構造函數訪問權限與缺省 73
3.2 內存分配 75
3.2.1 JVM內存模型 75
3.2.2 類元信息 80
3.2.3 創建類實例 87
3.3 初始化 89
3.3.1 用構建器自動初始化 89
3.3.2 成員變量初始化 90
3.3.3 init{}初始化 92
3.3.4 聲明時初始化 96
3.3.5 初始化順序 98
3.4 類成員變量 103
3.4.1 賦初值 103
3.4.2 訪問權限 111
3.5 數組 115
3.5.1 通過Array接口聲明數組 116
3.5.2 數組讀寫 119
3.5.3 聲明引用型數組 120
3.5.4 使用其他方式聲明數組 123
3.5.5 多維數組 129
3.5.6 數組與列錶轉換 131
3.6 靜態函數與伴隨對象 132
3.6.1 伴隨對象 133
3.6.2 名稱省略與實例化 135
3.6.3 伴隨對象中的屬性 136
3.6.4 伴隨對象的初始化 137
3.6.5 伴隨對象的原理 139
3.6.6 匿名類 145
4 繼承 149
4.1 繼承基礎概念 149
4.1.1 繼承語法 149
4.1.2 接口 152
4.1.3 虛類 165
4.2 多重繼承 168
4.2.1 類與接口的多重繼承 168
4.2.2 構造函數繼承 170
4.2.3 接口方法的多重繼承 174
4.3 繼承初始化 176
4.4 類型轉換 179
5 多態 183
5.1 概念 183
5.1.1 重寫 184
5.1.2 重載 185
5.2 擴展 189
5.2.1 概念 189
5.2.2 Kotlin的擴展 191
5.2.3 擴展與重載 193
5.2.4 函數擴展的多態性 196
5.2.5 函數擴展原理 201
5.2.6 屬性擴展 203
5.3 操作符重載 204
5.3.1 Kotlin中的操作符重載 205
5.3.2 通過擴展函數重載操作符 207
5.3.3 操作符重載原理 208
5.3.4 操作符重載限製 209
5.3.5 中綴符 211
5.4 指針與傳遞 212
5.4.1 Java中的類型與傳遞 213
5.4.2 按值/引用傳遞的終結者 216
5.4.3 this指針 218
5.4.4 類函數調用機製與this 222
6 Kotlin的I/O 224
6.1 Java I/O類庫 224
6.2 Kotlin I/O類庫 231
6.3 終端I/O 234
6.4 文件I/O 237
6.5 文件壓縮示例 239
6.6 序列化 241
6.6.1 Kotlin的序列化 242
6.6.2 序列化控製 245
7 Kotlin機製 247
7.1 函數定義 247
7.1.1 頂級函數 247
7.1.2 內聯函數 250
7.2 變量與屬性 257
7.2.1 屬性包裝 257
7.2.2 延遲初始化 261
7.2.3 let語法糖 264
7.3 類定義 266
7.3.1 Java內部類 267
7.3.2 Kotlin中的類 272
7.3.3 Kotlin類對頂級屬性和方法的訪問 274
7.3.4 Kotlin類中的成員變量 276
7.3.5 單例對象 279
榖歌作為世界級的科技公司巨頭,強悍的技術研發與創新能力使其一直是業界的楷模,其在各個領域的每一次創新,都能夠引領一個新的時代!
Kotlin便是其最新的一個創新力作。
編程語言的曆史已經超過瞭半個世紀,從最初的機器二進製碼,到匯編、B語言,再到C語言,再到由C語言所開發齣的其他若乾種編程語言。每一種編程語言都有其特定的用途,例如C語言通常用於開發底層係統軟件或者驅動程序,而部分更底層的功能則必須要由匯編甚至是直接的機器指令去完成。再如C++、Delphi曾經統治瞭PC桌麵軟件的開發領域,而應用服務器端的開發則長期被PHP、ASP、JSP壟斷,瀏覽器端的嵌入式腳本則幾乎由JavaScript語言一統天下。
這幾年互聯網領域先後經曆瞭幾次大革命,包括物聯網、大數據、雲計算等,如今則處於人工智能的火熱時代。在這個時代,人們極其努力地開啓機器智慧,在大數據樣本下,通過算法,讓機器進行一定的模糊識彆,從而解決很多傳統辦法解決不瞭的棘手問題。伴隨其中的一個重要的編程語言便是Java,因為Java的口號是“write once, run anywhere”(即:一次編寫,到處運行)。Java由於其強大的跨平颱(主要指操作係統)能力,而備受各種中間件組件開發人員的鍾愛。而Java之所以能夠跨平颱,主要歸功於JVM虛擬機。
JVM虛擬機內部針對不同的底層平颱進行瞭通用性抽象,從而可以讓Java這種上層編程語言對外提供統一的API,例如在進行多綫程開發時,開發者無須在不同的平颱上引入不同的類庫,而在開發界麵視圖時,Java也提供統一的界麵組件類庫。平颱的差異化工作都交給底層的JVM虛擬機進行適配處理,從而讓高層業務開發人員可以專心進行業務設計與邏輯實現,不用再關心底層各種紛繁復雜的硬件和平颱特性。開發人員唯一需要感知的平颱差異性僅僅在於需要在不同的平颱上下載平颱相關的JVM軟件而已。
在Java剛推齣來的幾年裏,由於JVM的性能低下,導緻不太被認可。但是後來隨著各種黑科技的引入,例如JIT即時編譯、基於Java字節碼的棧頂緩存技術、垃圾迴收算法的改進、JDK高性能類庫(例如並發包、NIO等)的發布,等等,JVM的性能得到長足改進和飛速提升,早已今非昔比,在部分場景下甚至比C/C++的性能還要高,例如運行期所進行的方法與綫程級的逃逸分析以及C1、C2分級動態編譯等技術。人們再也沒有任何理由拒絕使用Java,所以Java得到瞭飛速發展,多年來穩居服務端應用編程語言使用率第一的寶座。
同時,JVM是一個開源的産品,在技術體係上也是開放的,當然,並不是無條件的開放,而是在統一的技術規範下,不對實現做任何約束。因此各種基於JVM規範的編程語言也得以被發明齣來,例如Scala、Clojure、Groovy等,甚至PHP、Ruby等程序也可以轉換到JVM規範。不管高級編程語言是Java還是Scala,隻要能夠被翻譯成Java字節碼,JVM都能夠執行,這便是技術規範的開放性。
雖然Java與JVM在最近這些年取得瞭巨大的成功,但是也並非沒有缺點。例如Java是一種嚴格的麵嚮對象設計的編程語言,一切編程要素都被嚴格編寫在Java類型內部,你不可能像C語言那樣,直接在源程序中定義一個函數。這種完全的麵嚮對象設計的特性也給Java自己造成瞭很多不便,例如無法對底層類庫進行擴展,除非你去繼承並實現一個新的類型。
同時,Java編程語言的語法太過於嚴格和死闆,不像很多其他編程語言那樣,有不少讓人心動的功能特性,這種死闆和嚴格往往會造成工作效率的低下。
於是,Kotlin誕生瞭。
當筆者剛看到Kotlin時,並沒有多少驚訝。因為Kotlin底層仍然是基於JVM虛擬機的,主要是“仍然”喲!因為基於JVM的編程語言太多瞭,它們都有自己的“脾氣”和鮮明的“性格”,很難說誰比誰好。更何況,筆者剛剛讀完瞭JVM底層的源代碼,並匯編成書——《揭秘Java虛擬機:JVM設計原理與實現》(有興趣的讀者可以上淘寶、京東、亞馬遜、當當等主流平颱上選購),因此筆者並沒有覺得Kotlin會“玩”齣啥新的花樣來。然而,隨著對Kotlin特性瞭解的加深,筆者越來越發現Kotlin真的不是隨隨便便搞齣來的一個全新的編程語言——如果你有多年的編程開發經驗,並且熟知很多的編程語言,你會對Kotlin感到很驚訝!因為這真的是一門融閤瞭眾多編程語言特性的編程語言,並且是在不違反JVM規範的基礎上,將其他眾多語言的特性融入瞭進來,說其是博采眾傢之長,一點也不為過。
在驚訝之餘,筆者將對Kotlin的理解寫瞭下來,並形成瞭本書。本書著重為你介紹Kotlin各種高級特性背後的實現機製,希望我們可以一起探討Kotlin背後的設計哲學。
本書主要從封裝、繼承和多態這三方麵介紹Kotlin的麵嚮對象設計的語法特性及其背後的實現方式。
其中詳細講解瞭Kotlin在麵嚮對象封裝方麵所作齣的努力,Kotlin保留瞭Java封裝好的一麵,勇敢地摒棄瞭其不好的一麵,例如對靜態字段和方法的捨棄與變通。而在方法封裝上,Kotlin更是玩齣瞭新花樣,打破瞭Java封裝的徹底性,讓Java開發者可以體驗“麵嚮過程”編程的感覺。同時,Kotlin充分吸收其他編程語言中的好的語言特性,提供瞭諸如VB語言中的“with語法”。
在繼承方麵,Kotlin也有自己的思考,其綜閤瞭Java和C++等麵嚮對象編程語言繼承的優缺點,設計齣自己的一套獨特的繼承機製。不過Kotlin依然保留瞭Java語言中一個類不能同時繼承多個類的強製約束。
Kotlin給人最多的驚艷,都集中在“多態”這一領域。其中,最讓筆者驚嘆的便是Kotiln提供瞭這樣一種能力:不用修改原有類,也無須通過繼承的方式,就能為某個類增加新的行為。雖然Kotlin僅僅是取巧,僅僅實現瞭一個語法糖的包裝,但是這種小的改變卻秀齣瞭“美”的新高度。或許,這都不能算是繼承,這裏姑且將其與繼承混為一談吧。
另外,操作符重載也是Kotlin中一個非常驚艷的功能,給瞭筆者不小的衝擊力——也許是知識的貧乏限製瞭筆者的想象力。
如果僅僅講解Kotlin的語法,多麼無聊。所以,本書並沒有隻停留於以往內容層麵的介紹,作為一名對技術抱有極大熱情、凡事喜歡刨根問底的極客(姑且是往自己臉上貼金吧^_^),筆者進一步研究瞭Kotlin各種高級特性背後的實現機製。本書主要揭示瞭Kotlin中屬性包裝、多種形態的函數定義及各種特殊類型的定義等背後的實現機製。由於Kotlin並沒有自己的虛擬機,而是完全托管於JVM虛擬機,所以Kotlin最多隻能將技術玩到“Java字節碼”這一層,而筆者對此則是再熟悉不過的。
本書適閤各種編程語言的開發者閱讀,不管你是使用Java、Kotlin、Android開發,還是使用PHP、JSP開發,甚至是使用C、C++、VB、GO開發,都可以閱讀本書。因為你總會從本書中讀到一些熟悉的語言特性,當你看到Kotlin中也有這樣一種特性的時候,你一定會心一笑!
做活動,買瞭一堆,相信京東。給個好評吧
評分還可以,字跡清晰,沒有破損
評分很好,不錯?實用實用工具好啊
評分挺好的,送貨超級快…書的內容也很不錯,由淺入深
評分不錯,字跡清晰,紙質也好,
評分好好好 都很好 領一批京豆 給好評 領京豆 非常棒
評分對於開發來講,這些書都是可以看看的,知識就是力量。
評分書不錯,不過運輸途中弄破可以些,算瞭,書嘛!無所謂瞭!
評分很好,不錯?實用實用工具好啊
揭秘Kotlin編程原理 pdf epub mobi txt 電子書 下載