亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java與kotlin詳細對比

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

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

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

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

kotlin 簡介

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

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

易用性

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

規(guī)范性

工程項目都是需要指定開發(fā)規(guī)范的。比如變量命名等。在java中,方法重載的時候會生成@Override注解,但是這并不是強制約束的。kotlin的方法采用override關(guān)鍵字進行了強制約束。
再比如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在聲明變量的時候,可以指定變量是否為空,調(diào)用可為空對象時,需要進行空判斷。

跨平臺

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

編譯速度

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

其他kotlin特性

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

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

相關(guān)文章

  • Java內(nèi)部類原理、概述與用法實例詳解

    Java內(nèi)部類原理、概述與用法實例詳解

    這篇文章主要介紹了Java內(nèi)部類原理、概述與用法,結(jié)合實例形式詳細分析了Java內(nèi)部類的相關(guān)概念、原理、訪問、調(diào)用方法等操作技巧與注意事項,需要的朋友可以參考下
    2019-03-03
  • java實現(xiàn)新浪微博Oauth接口發(fā)送圖片和文字的方法

    java實現(xiàn)新浪微博Oauth接口發(fā)送圖片和文字的方法

    這篇文章主要介紹了java實現(xiàn)新浪微博Oauth接口發(fā)送圖片和文字的方法,涉及java調(diào)用新浪微博Oauth接口的使用技巧,具有一定參考接借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Java多線程之間日志traceId傳遞方式

    Java多線程之間日志traceId傳遞方式

    這篇文章主要介紹了Java多線程之間日志traceId傳遞方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MyBatis中防止SQL注入講解

    MyBatis中防止SQL注入講解

    這篇文章主要介紹了MyBatis中防止SQL注入,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-12-12
  • SpringBoot環(huán)境搭建及第一個程序運行(小白教程)

    SpringBoot環(huán)境搭建及第一個程序運行(小白教程)

    這篇文章主要介紹了SpringBoot環(huán)境搭建及第一個程序運行,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • springboot bootcdn使用示例詳解

    springboot bootcdn使用示例詳解

    這篇文章主要介紹了springboot bootcdn使用,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Java 遍歷list和map的方法

    Java 遍歷list和map的方法

    這篇文章主要介紹了Java 遍歷list和map的方法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • Java方法及數(shù)組相關(guān)原理解析

    Java方法及數(shù)組相關(guān)原理解析

    這篇文章主要介紹了Java方法及數(shù)組相關(guān)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • Java優(yōu)先隊列(PriorityQueue)重寫compare操作

    Java優(yōu)先隊列(PriorityQueue)重寫compare操作

    這篇文章主要介紹了Java優(yōu)先隊列(PriorityQueue)重寫compare操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Java設(shè)計模式之靜態(tài)工廠模式詳解

    Java設(shè)計模式之靜態(tài)工廠模式詳解

    這篇文章主要介紹了Java設(shè)計模式之靜態(tài)工廠模式,簡單說明了靜態(tài)工廠模式的概念、原理、實現(xiàn)與使用方法,需要的朋友可以參考下
    2017-09-09

最新評論