Kotlin是一種在Java虛擬機上運行的靜態類型編程語言。它主要是JetBrains開發團隊所開發出來的編程語言。雖然Kotlin與Java語法並不兼容,但Kotlin被設計成能夠和Java代碼相互運做,並能夠重複使用如Java集合框架等現有Java引用的方法庫。它很容易在Android項目中替代Java或者同Java一塊兒使用。java
Google在2019年的Google I/O大會上宣佈Kotlin被選爲Android開發首選語言。編程
那如今該不應學習Kotlin呢?以及學習Kotlin對架構師來講會有那些意義呢?瀏覽器
上圖是來在於Kotlin語言設計團隊的老大Andrey Breslav在2018年KotlinConf的會議上的演講,裏面包含了他對Kotlin設計上的一些理念的介紹,感興趣的同窗能夠在油管上搜一下這個視頻的完整版。安全
在KotlinConf 2018大會上Andrey Breslav表示了Kotlin並無首創一些當前沒有或大衆不太熟悉的設計理念,而是吸取了衆多其餘語言的精髓,而且提供強大的IDE支持,能真正方便開發者運用到實際項目之中。閉包
不只富有表現力並且可複用性更強:Kotlin將一些經常使用的功能好比:Android的一些擴展等封裝成庫,以方便開發者使用,在複用性方面它比Java有過之而不及;架構
對互通性的追求要大於首創性:爲何這麼說呢,在Kotlin發展的初期,不少人會以爲Kotlin無非就是從其它語言copy過來的,之說以這麼以爲是由於你看像高階函數,閉包,擴展,Lambda表達式等都不是Kotlin獨創的,都是從現有的語言中 借鑑過來的;Kotlin的設計者的理念是不追求首創性,而是追求更好的互通性,Kotlin要想超越Java必需要實現和Java的互通(互通做性),而不是另起爐竈。框架
強大的工具支撐以NPE保護使健全性更強:你們都知道Kotlin是JetBrains的團隊開發的,而JetBrains也是大名鼎鼎的IntelliJ IDEA的做者,而咱們開發Android 因此的AS也是Google和而JetBrains合做的產物,能夠說在工具方面AS 爲Kotlin開發Android提供了包括編譯器檢查等強大的支持。編程語言
上圖是Kotlin和Java的構建流程對比:函數
java.lang.*
, java.util.*
,但Kotlin中的類庫是不在標準的Java類庫中的,因此,Kotlin應用程序須要在最後一步藉助Kotlin運行時來支撐這些Java標準類庫沒有的實現。Kotlin與Java的異同
對Kotlin
中差別的部分有個印象君子生非異也,善假於物也
)
convert java file to kotlin file
工具若是你遇到一些代碼不知道該如何用Kotlin來實現的時候,不妨試試下面的工具:工具
public interface BrightnessListener {
String[] onViewBrightness(String... args);
}
複製代碼
經過以下步驟將上述Java文件轉成Kotlin:
AS
-> Code
-> convert java file to kotlin file
或者將上述代碼複製到kotlin文件中利用AS的自動轉換功能進行轉換:
interface BrightnessListener {
fun onViewBrightness(vararg args: String?): Array<String?>?
}
複製代碼
Kotlin能夠理解爲Java的語法糖,咱們能夠藉助AS提供的工具來查看咱們Kotlin代碼的Java 模樣,也就是說IDE 會將咱們的Kotlin代碼轉成怎樣的Java代碼:
AS
-> Tools
-> Kotlin
-> Show kotln Bytecode