最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java與kotlin詳細對比

 更新時間:2021年09月02日 11:43:00   作者:請輸入妮稱  
這篇文章主要介紹了Java與kotlin詳細對比,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下

在Google I/O 2017中,Google 宣布 Kotlin 成為 Android 官方開發(fā)語言。

為什么選擇 Kotlin? 簡潔: 大大減少樣板代碼的數(shù)量。 安全: 避免空指針異常等整個類的錯誤。 互操作性: 充分利用 JVM、Android 和瀏覽器的現(xiàn)有庫。 工具友好: 可用任何 Java IDE 或者使用命令行構建。

使用kotlin已經有一段時間了。打算從宏觀上做一下java和kotlin的對比。java8雖然也有很多新特性,但是android低版本并不兼容。因此這里以舊版本為例。

kotlin 簡介

Kotlin 是一種在 Java 虛擬機上運行的靜態(tài)類型編程語言,被稱之為 Android 世界的Swift,由 JetBrains 設計開發(fā)并開源。

Kotlin 可以編譯成Java字節(jié)碼,也可以編譯成 JavaScript,方便在沒有 JVM 的設備上運行。

易用性

  1. 在語法糖的加持下,kotlin能夠用更短的代碼實現(xiàn)更多的功能。這是java 無法比擬的。所謂代碼量越少,出bug的可能性就越低。
  2. kotlin特有的擴展屬性,不再需要java工具類,對開發(fā)更加友好。
    比如我們想實現(xiàn)字符串判空操作,在java中需要寫一個StringUtil類,這樣其他開發(fā)同學想實現(xiàn)該功能的時候,可能并不知道已經有人實現(xiàn)了該功能,存在重復造輪子的可能。通過擴展屬性,我們可以很方便的看出String類都存在哪些方法。
  3. java中的bean類總是需要使用插件生成setter getter方法。kotlin中的data關鍵字可以解決這類問題,data類在編譯期自動生成getter setter方法。

規(guī)范性

工程項目都是需要指定開發(fā)規(guī)范的。比如變量命名等。在java中,方法重載的時候會生成@Override注解,但是這并不是強制約束的。kotlin的方法采用override關鍵字進行了強制約束。
再比如TODO。java中的TODO是以注釋的形式存在,即使沒有實現(xiàn)TODO處的代碼,也沒什么運行時問題。kotlin的TODO形式如下:

fun main(args: Array<String>) {
    TODO()
}

kotlin TODO的實現(xiàn)

@kotlin.internal.InlineOnly
public inline fun TODO(): Nothing = throw NotImplementedError()

可以看到運行時會拋出異常。
思考:這里為什么不在編譯期拋出異常呢?

安全性

java中雖然有@Nullable @NotNull等注解。但是不會在編譯期起作用,而是在運行期拋出異常。kotlin在聲明變量的時候,可以指定變量是否為空,調用可為空對象時,需要進行空判斷。

跨平臺

java在jvm的協(xié)助下雖然也是跨平臺語言,但是不能像kotlin一樣可以既可以編譯成class字節(jié)碼,又可以編譯成js。

編譯速度

只有全量編譯下,kotlin比java慢。增量編譯下,兩者幾乎沒有差距。

其他kotlin特性

懶加載、高階函數(shù)、協(xié)程、inline操作符、運算符重載、默認參數(shù)等。

到此這篇關于Java與kotlin詳細對比的文章就介紹到這了,更多相關Java與kotlin對比內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot整合Thymeleaf的方法

    SpringBoot整合Thymeleaf的方法

    這篇文章主要介紹了SpringBoot整合Thymeleaf的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下,希望能夠幫助到你
    2021-07-07
  • mybatis如何實現(xiàn)saveOrUpdate

    mybatis如何實現(xiàn)saveOrUpdate

    這篇文章主要介紹了mybatis如何實現(xiàn)saveOrUpdate問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 將Sublime Text 2配置為Java的IDE的教程

    將Sublime Text 2配置為Java的IDE的教程

    這篇文章主要介紹了將Sublime Text 2配置為Java的IDE的教程,包括能讓Sublime這個文本編輯器編譯和運行Java程序等,需要的朋友可以參考下
    2015-07-07
  • SpringBoot項目在IntelliJ IDEA中如何實現(xiàn)熱部署

    SpringBoot項目在IntelliJ IDEA中如何實現(xiàn)熱部署

    spring-boot-devtools是一個為開發(fā)者服務的一個模塊,其中最重要的功能就是自動應用代碼更改到最新的App上面去。,這篇文章主要介紹了SpringBoot項目在IntelliJ IDEA中如何實現(xiàn)熱部署,感興趣的小伙伴們可以參考一下
    2018-07-07
  • java實現(xiàn)學生選課系統(tǒng)

    java實現(xiàn)學生選課系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)學生選課系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Java排序算法總結之堆排序

    Java排序算法總結之堆排序

    這篇文章主要介紹了Java排序算法總結之堆排序,詳細分析了堆排序的原理與java實現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05
  • Java如何使用Query動態(tài)拼接SQL詳解

    Java如何使用Query動態(tài)拼接SQL詳解

    這篇文章主要給大家介紹了關于Java如何使用Query動態(tài)拼接SQL的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • java如何根據(jù)日期生成單號

    java如何根據(jù)日期生成單號

    這篇文章主要介紹了java如何根據(jù)日期生成單號問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • 使用Java實現(xiàn)轉換掃描的文檔為可搜索的PDF

    使用Java實現(xiàn)轉換掃描的文檔為可搜索的PDF

    這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)轉換掃描的文檔為可搜索的PDF,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • Java實現(xiàn)多線程模擬龜兔賽跑

    Java實現(xiàn)多線程模擬龜兔賽跑

    這篇文章主要為大家詳細介紹了Java實現(xiàn)多線程模擬龜兔賽跑,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評論

惠安县| 池州市| 浦江县| 陆川县| 开封市| 五常市| 柘城县| 阳原县| 白朗县| 北川| 筠连县| 安徽省| 上饶市| 永顺县| 青铜峡市| 杭州市| 靖宇县| 苏州市| 本溪市| 满城县| 黎城县| 托克逊县| 桃江县| 铜陵市| 大港区| 贵德县| 临洮县| 久治县| 玉溪市| 广南县| 贵德县| 金门县| 桃江县| 缙云县| 雅安市| 怀宁县| 镇康县| 勐海县| 沁阳市| 宜州市| 文登市|