Java的平臺無關性

轉載請註明原文地址:http://www.javashuo.com/article/p-wjqhkuwk-es.htmlhtml

 

一:程序須要轉化爲機器指令執行

    不管哪一種編程語言編寫的程序都須要通過 操做系統 和 CPU 來完成程序的運行,而機器只能識別0、1組成的機器指令,所以,程序在機器上運行前須要先編譯成爲機器能識別的機器指令。java

    不一樣的平臺能識別的機器指令不一樣,所以某種語言編譯出來的機器指令在A平臺能別識別和執行,在B平臺就有可能會出錯。編程

    所以,一旦更換了平臺,就可能須要修改源程序,並針對新的平臺從新編譯源程序,這就是咱們所說的「平臺相關性」。安全

 

二:Java語言的平臺無關性

    Java在平臺與程序之間,提供了一個 向下兼容(對平臺兼容) 同時 又能夠向上兼容(程序能夠運行)的運行環境——JRE【Java運行時】。jvm

    JRE由Java虛擬機[JVM],類庫和一些核心文件組成,任何平臺只要安裝了JRE,就能夠運行Java程序編程語言

    

三:「一次編譯,處處運行」

    Java語言提供的編譯器  針對Java虛擬機  把Java源程序編譯成「字節碼」,而後Java虛擬機負責將字節碼翻譯成虛擬機所在平臺的機器碼,並讓當前平臺運行該機器碼。函數式編程

    所以,在一個計算機上編譯獲得的字節碼文件(就是.class文件),能夠複製到任何一個安裝了Java運行環境的計算機上直接運行。函數

    這個過程就是「源程序——>編譯——>字節碼——>JVM——>對應平臺的機器碼——>執行」。操作系統

 

四:JVM支持10種語言

  Java:主人公。scala

 

  kotlin:Kotlin比Java更加簡潔和安全, 能夠將Kotlin視爲是一種「更加簡單但高效的Java」。Kotlin的編譯速度一般比Java代碼快,目前大多用於Android開發。

 

  Scala:Scala的全稱叫scalable,可伸縮的意思。它是個純正的面嚮對象語言,而且具有函數式編程特性,因爲構建在jvm之上的,他能夠和Java進行無縫對接,也就是說scala可使用Java的類庫,java有可使用scala程序。

                 目前scala主要用於爲大規模數據處理而設計的快速通用的計算引擎——Spark。

 

  Clojure

  Groovy

  Jython

  JRuby

  Ceylon

  Eta

  Haxe

相關文章
相關標籤/搜索