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

Java與kotlin詳細(xì)對(duì)比

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

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

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

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

kotlin 簡(jiǎn)介

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

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

易用性

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

規(guī)范性

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

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

kotlin TODO的實(shí)現(xiàn)

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

可以看到運(yùn)行時(shí)會(huì)拋出異常。
思考:這里為什么不在編譯期拋出異常呢?

安全性

java中雖然有@Nullable @NotNull等注解。但是不會(huì)在編譯期起作用,而是在運(yùn)行期拋出異常。kotlin在聲明變量的時(shí)候,可以指定變量是否為空,調(diào)用可為空對(duì)象時(shí),需要進(jìn)行空判斷。

跨平臺(tái)

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

編譯速度

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

其他kotlin特性

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

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

相關(guān)文章

  • SpringBoot整合Thymeleaf的方法

    SpringBoot整合Thymeleaf的方法

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

    mybatis如何實(shí)現(xiàn)saveOrUpdate

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

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

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

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

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

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

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

    Java排序算法總結(jié)之堆排序

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

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

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

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

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

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

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

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

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

最新評(píng)論

襄樊市| 娄烦县| 错那县| 墨江| 南华县| 亳州市| 太白县| 盱眙县| 吴川市| 榆中县| 涞源县| 连云港市| 苏尼特右旗| 南丹县| 民和| 绥芬河市| 肇庆市| 新津县| 大英县| 酒泉市| 新源县| 锡林浩特市| 桑日县| 黑水县| 宝兴县| 临高县| 仁布县| 简阳市| 石门县| 吉安县| 镇平县| 孝感市| 乐平市| 穆棱市| 庐江县| 安新县| 弥勒县| 商水县| 北票市| 内丘县| 墨脱县|