① java跨平台原理,其他語言為什麼不可以
C/C++語言都直接編譯成針對特定平台機器碼。如果要跨平台,需要使用相應的編譯器重新編譯。
Java源程序(.java)要先編譯成與平台無關的位元組碼文件(.class),然後位元組碼文件再解釋成機器碼運行。解釋是通過Java虛擬機來執行的。
位元組碼文件不面向任何具體平台,只面向虛擬機。
Java虛擬機是可運行Java位元組碼文件的虛擬計算機。不同平台的虛擬機是不同的,但它們都提供了相同的介面。
Java語言具有一次編譯,到處運行的特點。就是說編譯後的.class可以跨平台運行,前提是該平台具有相應的Java虛擬機。但是性能比C/C++要低。
② java的跨平台的含義是什麼為什麼java可以跨平台
首先,理解平台的含義是什麼..平台的意思.個人感覺就是指操作系統,還有一層意思就是運行不同操作系統的不同的硬體設備;
也就是說,某一種代碼編譯後,既可以在a操作系統下運行,也可以在b操作系統下運行...或者是在c設備上運行.
那麼除了java以外還有什麼跨平台的語言么?當然有啊,python(但是能力有限,只能不能跨位,就是32不能跨到64,同時也不能跨版本),scala..都可以..但是相對於java,它的跨平台性能就要差一點..(其實java跨平台也不是那麼完美,很多時候還是有很多陷阱)
至於java如何實現的跨平台,那就跟java這個語言的機制有關系了.java代碼被javac編譯成java中間碼(就是.class文件)JIT編譯器再把java中間碼編譯成nativecode,最終在晶元上執行..能做到跨平台,就在編譯nativecode這步做文章...不同的jvm通過不同的技術,將java中間碼按照相同的規范編譯成高效的,對應不同平台的原生機器碼,從而實現了同一中間碼在不同設備上的同樣執行結果..以此實現的java跨平台..
2017年8月16日 12:40:34
③ java為什麼可以跨平台執行
因為java程序是用java虛擬機(JVM)執行的,不論是用什麼平台開發的java代碼,最終都會被轉換成只被JVM識別的代碼。
所以只要下載各個平台的java虛擬機就可以實現代碼的跨平台運行。
④ JAVA語言為什麼能跨平台
所謂的跨平台就是JAVA寫的一份代碼可以在任意的操作系統平台上運行。
為什麼跨平台會成為一個問題呢?因為每一個操作系統平台支持不同的指令集我們所寫的代碼經過編譯之後只能適用於一個平台,換一個平台就不支持了。而JAVA完美的解決了這個問題。
Java的一大特色就是「write once, run anywhere」即「一次編譯,到處運行」。就是說你不用專門為每個平台寫一份代碼,你寫的Java程序在任何平台都能跑起來。
它的實現原理是在系統層面上又增加了一層虛擬機(Java Virtual Machine,簡稱JVM),且為每個平台都定製了對應的虛擬機。然後Java程序是在虛擬機上跑的,因此平台無關。
Java的運行流程是:程序員寫了源代碼(Source Code,.java後綴,跨平台),然後經過編譯器編譯成位元組碼(Byte Code,.class後綴,二進制文件),位元組碼是所有虛擬機都能理解的中間文件。然後交給虛擬機(每個平台都有對應的虛擬機)去運行。
所以對「write once, run anywhere」更准確的理解是,「一次編譯,到處裝虛擬機,所以到處運行」。
整個流程如下圖所示。
希望對您有所幫助!~