事件:2017年,谷歌宣布Kotlin成為Android的一級開發(fā)語言。
原由:創(chuàng)造java平臺的sun公司被甲骨文收購,甲骨文向谷歌索賠巨額專利使用費,谷歌打官司輸了。導(dǎo)致谷歌需要一種語言來替換java。
影響:對于Android開發(fā)而言,以后的官方文檔、視頻資料和demo等都將替換成kotlin,那么作為Android開發(fā),要想獲取第一手官方資源,勢必需要懂得Kotlin。Kotlin已經(jīng)成為想要在Android這條路上繼續(xù)發(fā)展的必備技能。
問題:為什么Android的開發(fā)語言可以使用Kotlin來替換java?
1.編程語言分為編譯型語言和解釋型語言。
比如c,C++就是編譯型語言:編程語言會被編譯成計算機可以識別的二進制文件,再執(zhí)行。比如Python、javaScript就是解釋型語言:解釋器會一行行讀取我們寫的源代碼,然后解釋成計算機可以識別的二進制文件,再執(zhí)行。
2.java屬于解釋型語言。
java雖然需要編譯再運行,但是沒有直接編譯成計算機可以識別的二進制文件,而是編譯成一種特殊的class文件。然后再由java虛擬機擔(dān)任解釋的角色,將class文件解釋成計算機可識別的二進制數(shù)據(jù)后再執(zhí)行。在Android中ART就是一種移動優(yōu)化后的虛擬機。
3.Kotlin就是將編程語言編譯成和java相同規(guī)格的class文件,然后交給虛擬機來識別。
進化:Kotlin作為后發(fā)的高級語言,對于java的一些缺陷做了優(yōu)化,比如空指針,還有一些高級語法特性。