欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Java是如何實現平臺無關性的

阮建安2年前39瀏覽0評論

Java是如何實現平臺無關性的?

所謂平臺無關性指的就是程序可以在任何平臺運行,而不需要改動程序本身。基于這個概念,java平臺無關性實現主要由一下幾個部分組成。

1、中間字節(jié)碼文件

我們都知道java程序中的代碼文件最終都會被編譯成字節(jié)碼文件,即. class文件。這個編譯工作可以通過javac命令來完成。平常開發(fā)中我們更多的是通過開發(fā)工具來完成的。假如我們用maven構建一個項目,我們可以在idea中直接 build jar或者build war。最終生成的文件就是字節(jié)碼文件。這些字節(jié)碼文件是不能被操作系統(tǒng)識別的,操作系統(tǒng)只能識別0和1。那這些文件靠誰識別呢?JVM。

2、JVM

java虛擬機即jvm,是運行在操作系統(tǒng)之上的一個虛擬的編譯系統(tǒng)。它的作用就是將字節(jié)碼文件翻譯成操作系統(tǒng)可以識別的語言0和1。這就是我們?yōu)槭裁磳Wjava,先要安裝jdk。jdk中包括了jvm。沒有jvm,java源代碼是無法編譯成字節(jié)碼文件的。不同操作系統(tǒng)我們需要安裝不同的jdk,不同平臺的jvm對外暴露的是同樣的接口,但是內部解釋0和1的過程是不一樣的,這就間接實現了跨平臺。我們平常寫代碼就不用考慮不同平臺兼容性的問題,jvm會幫你做,write once,run anywhere。鑒于此,我們也可以開發(fā)一種語言,只要能編譯成字節(jié)碼文件,就能借助jvm讓其運行在操作系統(tǒng)上,就像scala。~笑臉~

3、語言本身的規(guī)范

這也是跨平臺一個重要的原因。Java的基本數據類型的值域和行為都是由它自己定義的。

不管是在那種平臺下運行,Java中的int都是32位二進制表示有符號整數,而float則總是遵循IEEE754浮點標準的32位浮點數。

在像C/C++這樣的語言中,基本數據類型int的值域是由它的占位寬度決定的,而它的占位寬度則由平臺決定的。這就是它不能跨平臺的一個原因了。

java war包,Java是如何實現平臺無關性的