一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java 實現跨平臺的操作方式

Java 實現跨平臺的操作方式

2020-09-04 00:27陸佳驊的博客 Java教程

這篇文章主要介紹了Java 實現跨平臺的操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

什么是平臺無關性

平臺無關性就是一種語言在計算機上的運行不受平臺的約束,一次編譯,到處執行。

也就是說,用Java創建的可以執行二進制程序,能夠不加改變的運行于多個平臺,Java減少了開發和部署的多個平臺的成本和時間。

平臺無關性的實現

其中扮演者重要的角色有Java語言規范、Class文件、Java虛擬機(JVN)等。

在計算機世界中,計算機只認識0和1.所以,真正被執行的其實是由0和1組成的二進制文件。

日常開發使用的C、C++、Java、python 都屬于是高級語言,而非二進制語言,所以,想讓計算機認識我們寫出來的Java代碼,那就需要

把他翻譯成由0和1組成的二進制文件。這個過程就叫編譯。負責這一個過程的處理的工具叫做編譯器。

想把Java文件,編譯成二進制文件文件,需要經過兩步編譯,前端編譯和后端編譯。

Java 實現跨平臺的操作方式

前端編譯主要是指與源語言有關但與目標機無關的部分。Java中,我們知道的 javac 的編譯就是前端編譯。除了這種以外,我們使用的很多IDE如eclipse,idea等,都是內置了前端編譯器,

主要功能就是.java文件轉換為.class文件。

后端編譯主要是將中間代碼再翻譯成機器語言。Java中,這一步驟就是后端編譯(jvm來執行)。

Java 實現跨平臺的操作方式

Java虛擬機

之所以跨平臺是由jvm來完成的,jvm會根據不用的操作系統和硬件設備,提供不同jvm。對于不同的操作系統jvm對應的質指令是不同的class文件。

比如同樣執行a+b,A操作系統對應的二進制指令可能是10001000,而B操作系統對應的指令可能是11101110。那么,想要做到跨平臺,最重要的就是可以根據對應的硬件和操作系統生成對應的二進制指令。

Java 實現跨平臺的操作方式

有了Java虛擬機,想要執行a+b操作,A操作系統上面的虛擬機就會把指令翻譯成10001000,B操作系統上面的虛擬機就會把指令翻譯成11101110。

Java 實現跨平臺的操作方式

所以,Java之所以可以做到跨平臺,是因為Java虛擬機充當了橋梁。他扮演了運行時Java程序與其下的硬件和操作系統之間的緩沖角色。

class字節碼

各種不同的平臺的虛擬機都使用統一的程序存儲格式――字節碼(ByteCode)是構成平臺無關性的另一個基石。Java虛擬機只與由字節碼組成的Class文件進行交互。 我們說Java語言可以Write Once ,Run Anywhere。這里的Write其實指的就是生成Class文件的過程。 因為Java Class文件可以在任何平臺創建,也可以被任何平臺的Java虛擬機裝載并執行,所以才有了Java的平臺無關性。class 是16進制的文件流,最終會被jvm轉成二進制的機械碼。

Java語言規范

已經有了統一的Class文件,以及可以在不同平臺上將Class文件翻譯成對應的二進制文件的Java虛擬機,Java就可以徹底實現跨平臺了嗎? 其實并不是的,Java語言在跨平臺方面也是做了一些努力的,這些努力被定義在Java語言規范中。 比如,Java中基本數據類型的值域和行為都是由其自己定義的。而C/C++中,基本數據類型是由它的占位寬度決定的,占位寬度則是由所在平臺決定的。所以,在不同的平臺中,對于同一個C++程序的編譯結果會出現不同的行為。 舉一個簡單的例子,對于int類型,在Java中,int占4個字節,這是固定的。 但是在C++中卻不是固定的了。在16位計算機上,int類型的長度可能為兩字節;在32位計算機上,可能為4字節;當64位計算機流行起來后,int類型的長度可能會達到8字節。根據規范格式,才能夠被jvm編譯以及解釋運行。

Java 實現跨平臺的操作方式

總結

對于Java的平臺無關性的支持是分布在整個Java體系結構中的。

其中扮演著重要角色的有Java語言規范、Class文件、Java虛擬機等。

Java語言規范

通過規定Java語言中基本數據類型的取值范圍和行為

Class文件

所有Java文件要編譯成統一的Class文件

Java虛擬機

通過Java虛擬機將Class文件轉成對應平臺的二進制文件等 Java的平臺無關性是建立在Java虛擬機的平臺有關性基礎之上的,是因為Java虛擬機屏蔽了底層操作系統和硬件的差異。

以上這篇Java 實現跨平臺的操作方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/lujiahua/p/11404611.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 午夜久久精品 | 厨房play黄瓜进入 | 日本老妇成熟 | 亚洲伦理一区 | 国产亚洲精品九九久在线观看 | 女仆掀起蕾丝裙被打屁股作文 | 国内在线观看 | 美女污视频在线观看 | 4hu四虎永久网址 | 成年无限观看onlyfans | 欧美撒尿屁股嘘嘘撒尿 | 免费观看在线观看 | 高h细节肉爽文办公室 | a级精品九九九大片免费看 a级动漫 | 俄罗斯处女摘花 | 欧美在线播放一区二区 | 国产日韩精品一区二区在线观看播放 | 日韩成人在线视频 | 亚洲春色综合另类网蜜桃 | 亚洲第一区在线观看 | sss视频在线精品 | 免费国产午夜高清在线视频 | 青青草原社区 | 二区三区视频 | 国产东北3p真实在线456视频 | 亚洲第一人黄所 | 魔镜号中文字幕 | 日韩精品一二三区 | 欧美粗黑巨大gay | 欧美日韩第二页 | 青青成人| 亚洲国产精品ⅴa在线观看 亚洲国产高清一区二区三区 | 国产色在线观看 | 欧洲vodafonewifi日本 | 99九九精品视频 | 亚洲九九精品 | 99精品视频免费在线观看 | 脱jk裙的美女露小内内无遮挡 | 涩涩国产精品福利在线观看 | 国产精品久久久久a影院 | 欧美日韩色图 |