Java169面試題----1:Java跨平臺原理
計算機到底能夠執行什麼東西?
- 我們平時使用的語言例如c/c++/java都是高階語言,計算機並不能夠直接執行他們,換句話說計算機不能理解這些高階語言的意思,就比如一個只會中文的中國人聽不懂英語一樣。
- 為什麼能夠讓計算機能夠執行這些高階語言編寫而成的程式,那麼就需要把它翻譯成計算機能夠理解的機器碼。計算機能夠執行機器碼。
- 問題是不同計算機的機器碼不同這就給跨平臺的執行帶來很大的困難,再以前要在不同的計算機上執行就要每次都編譯成為不同的機器碼。這也是c/C++所使用的方法:C/C++語言都直接編譯成針對特定平臺機器碼。如果要跨平臺,需要使用相應的編譯器重新編譯。
Java
- Java再發布的時候就有一個很響亮的口號:一次編譯,到處執行
- Java源程式(.java)要先編譯成與平臺無關的位元組碼檔案(.class),然後位元組碼檔案再解釋成機器碼執行。解釋是通過Java虛擬機器來執行的。Java語言的執行要經過編譯和解釋兩個階段。
- 位元組碼檔案不面向任何具體平臺,只面向虛擬機器。
- Java虛擬機器是可執行Java位元組碼檔案的虛擬計算機。不同平臺的虛擬機器是不同的,但它們都提供了相同的介面。
- Java語言具有一次編譯,到處執行的特點。就是說編譯後的.class可以跨平臺執行,前提是該平臺具有相應的Java虛
擬機。但是效能比C/C++要低。 - 但是Java的跨平臺原理決定了其效能沒有C/C++高
- 總的來說,一個Java源程式只需要一次編譯成位元組碼檔案即可,只要是安裝了java虛擬機器的計算機就可以執行這個位元組碼並把位元組碼解釋成其對於計算機的機器碼。
相關文章
- Java跨平臺原理Java
- JAVA的跨平臺原理Java
- JVM跨平臺原理JVM
- Java跨平臺原理與Java虛擬機器(JVM)Java虛擬機JVM
- [JAVA] 初識Java 和 Java的跨平臺實現原理Java
- Java如何實現跨平臺?原理是怎樣的?Java
- Java是如何實現跨平臺的?原理是什麼?Java
- 寫在開始編寫Java之前(1)——Java的跨平臺性Java
- 應用跨平臺問題?
- java 面試題1Java面試題
- JVM筆記 -- Java跨平臺和JVM跨語言JVM筆記Java
- Java跨平臺?慎用這些有平臺差異性的方法Java
- rust跨平臺Rust
- java面試題-HashMap的工作原理Java面試題HashMap
- 開源、高效、跨平臺:深剖Google FlatBuffers工作原理Go
- JAVA語言為什麼能跨平臺?Java
- long資料型別跨平臺問題資料型別
- 【Java面試題】之CAS原理深度分析Java面試題
- 跨平臺編譯編譯
- .NET Core 跨平臺
- WPF跨平臺方案?
- rman 跨平臺支援
- VNC 跨平臺copyVNC
- 跨平臺還是Java的最大優勢嗎?Java
- 編寫跨平臺Java程式注意事項(轉)Java
- 面試題之:java基礎1面試題Java
- MobileLab跨平臺開發專題交流會
- Java最大的優勢真的在於跨平臺嗎?Java
- 面試——談談你對Java 平臺的理解面試Java
- Java基礎慨念面試題1Java面試題
- 開源面試題社群平臺上線了面試題
- 用JS開發跨平臺桌面應用,從原理到實踐JS
- jProcesses:使用Java獲取跨平臺程式的詳細資訊Java
- 小專案從0到1之跨平臺方案選型
- C#移動跨平臺開發(1)環境準備C#
- onethink支援跨平臺嗎
- 跨平臺技術演進
- Go跨平臺交叉編譯Go編譯