Kotlin入門-與java的差異【入門級】

在這裏插入圖片描述

基本類型

詳情 請點擊查看

Kotlin Java 差異理解
基本類型 萬物皆對象,基本類型也是對象 基本類型不是對象 融合了int和Integer,作統一管理
數字下劃線 增加數字下劃線,更易讀 不支持 增強數字的可閱讀性
數值賦值 會產生新對象 基礎類型不會產生對象 增加了=== 值比較
數值轉換 必須要顯式轉換 理解爲Integer的話,其實也是要顯式轉換
位運算 一堆符號 用關鍵字
字符對比 不可當數字 可以自動轉數字
字符串 有"""原始字符串 新增了"""功能
末尾有無分號 無分號,系統自動添加 有分號

條件判斷

詳情 請點擊查看

Kotlin Java 差異理解
區間判斷 可以進行x…y的區間判斷 需要用< >進行範圍判斷 Kotlin簡化了常用的判斷
when 可跟任意判斷邏輯進行組合 java中是switch是對單一類型進行判斷 Kotlin簡化了條件判斷,並支持了多種條件

循環判斷

詳情 請點擊查看

Kotlin Java 差異理解
for循環 簡化for循環索引和取值 Kotlin簡化循環中獲取index、value
標籤 增加了標籤功能 Kotlin局部加強了循環的結束跳轉

包、類和對象

詳情 請點擊查看

Kotlin Java 差異理解
包導入 添加as關鍵字,支持別名 不支持 kotlin解決了包名衝突
構造函數 添加了主\次構造函數概念 引入了主\次構造函數後,簡化了結構體的編碼,如java單例模式中的private結構體
override 相比java,對繼承中,增強 改變的部分 的標註 kotlin在安全方面的考量更多

屬性

詳情 請點擊查看

Kotlin Java 差異理解
field 引入了field字段 kotlin解決了包名衝突
屬性的getter&setter 物理上聚攏跟屬性相關的操作 需要通過function進行操作 kotlin更精簡
變量的聲明 簡化val 和var兩種 java是強類型語言
變量延遲初始化 引入lateinit處理

接口

詳情 請點擊查看

Kotlin Java 差異理解
接口實現機制 可指定super的基類 只有一個基類

擴展

詳情 請點擊查看

Kotlin Java 差異理解
動態擴展 動態擴展屬性、函數,靜態解析 只能通過繼承解決

數據類&密封類

詳情 請點擊查看

Kotlin Java 差異理解
數據類 data快捷自動創建 通過插件解決 Kotlin提供了setter\getter\equals\toString等快捷生成的函數,更爲便捷
密封類 enum的擴展類。操作類型有限定,但是可以自動組合 java無法二次組合

枚舉類

詳情 請點擊查看

Kotlin Java 差異理解
枚舉類 代碼量更少 java代碼多一些 功能都可以實現,只是代碼量區別

對象表達式和對象聲明

詳情 請點擊查看

Kotlin Java 差異理解
單例模式 object聲明後天然單例,通過類名調用 4種單例,各有區別,通過實例獲取 kotlin代碼少多了,還避免的 內存模型的考慮
object和any 新增了any,兩者是編譯期區別,運行期一樣
private和非private函數 返回值會不一樣 無差別
增加伴生對象 增加了伴生對象 伴生對象補償了object類的初始化需求

別名

詳情 請點擊查看

Kotlin Java 差異理解
增加typealias 使用typealias後名稱更美麗 kotlin考慮了視覺美觀

委託

詳情 請點擊查看

Kotlin Java 差異理解
by關鍵字 委託的快捷實現 也可以實現
lazy懶加載 新增了lazy關鍵字,懶加載更方便 可實現,但需要編寫實例化的語句
觀察者模式 增加Delegates.observable,變量變化已追蹤 需要統一的設置入口,編碼要規範

泛型

詳情 請點擊查看

Kotlin Java 差異理解
out、in關鍵字 支持型變 不支持,需要通過T來約束實現類似的功能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章