中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JVM虛擬機中Class文件的簡介是什么

發布時間:2021-10-23 16:07:27 來源:億速云 閱讀:145 作者:柒染 欄目:大數據

今天就跟大家聊聊有關JVM虛擬機中Class文件的簡介是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

一、簡介

class文件全名稱為Java class文件,class文件徑打破了C或者C++等語言所遵循的傳統,當編譯和連接一個C++程序時,所獲得的可執行二進制文件只能在指定的硬件平臺和操作系統上運行,因為這個二進制文件包含了對目標處理器的機器語言。

而Java程序(class文件)并不是本地的可執行程序。當運行Java程序時,首先運行JVM(Java虛擬機),也就是在計算機上再虛擬一個計算機,它存在于計算機內存中并運行在操作系統之上的,然后再把Java class加載到JVM里運行。

因此Java class文件是可以運行在任何支持Java虛擬機的硬件平臺和操作系統上的二進制文件,實現了“一次編寫、處處運行”。

二、定義

Class文件是一組以8位字節為基礎單位的二進制流,各個數據項目嚴格按照順序緊湊地排列在Class文件之中,中間沒有添加任何分隔符。根據Java虛擬機規范的規定,Class文件結構采用一種類似于C語言結構體的偽結構來存儲數據,這種偽結構只有兩種數據類型:無符號數

  • 無符號數屬于基本的數據類型,以u1、u2、u4、u8來表示1個字節、2個字節、4個字節和8個字節的無符號數,無符號數可以用來描述數字、索引引用、數量值或者按照UTF-8編碼構成的字符串值。

  • 表是由多個無符號數或者其他表作為數據項構成的符合數據類型,所有表都習慣性地以“_info”結尾。表用于描述有層次關系的復合結構的數據,整個class文件就是一張表 ,它由下表所示的數據項構成。

JVM虛擬機中Class文件的簡介是什么

無論是無符號數還是表,當需要描述同一類型但數量不定的多個數據時,經常會使用一個前置的容量計數器加若干個連續的數據項的形式,這時候稱這一系列連續的某一類型的數據為某一類型的“集合”。

需要強調的是,Class的結構不像xml等描述語言,由于它沒有任何分隔符號,所以上表中的數據項,無論是順序還是數量,甚至于數據存儲的字節序(Byte Ordering,Class 文件中字節序為Big-Endian)這樣的細節,都是被嚴格限定的,哪個字節代表什么含義,長度是多少, 先后順序如何,全部都不允許改變。

三、Class文件發展歷史

Java技術能夠一直保持著非常良好的向后兼容性,Class文件結構的穩定功不可沒,任何一門程序 語言能夠獲得商業上的成功,都不可能去做升級版本后,舊版本編譯的產品就不再能夠運行這種事情。而Class文件的結構,絕大部分都是在第一版的《Java虛擬機規范》(1997年 發布,對應于JDK 1.2時代的Java虛擬機)中就已經定義好的,內容雖然古老,但時至今日,Java發展經歷了十余個大版本、無數小更新,那時定義的Class文件格式的各項細節幾乎沒有出現任何改變。盡 管不同版本的《Java虛擬機規范》對Class文件格式進行了幾次更新,但基本上只是在原有結構基礎上 新增內容、擴充功能,并未對已定義的內容做出修改。

四、Java虛擬機實現語言的無關性

JVM虛擬機中Class文件的簡介是什么

看完上述內容,你們對JVM虛擬機中Class文件的簡介是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邳州市| 南昌市| 灵寿县| 扶沟县| 安化县| 邳州市| 金阳县| 集安市| 余干县| 宝鸡市| 星子县| 宜川县| 江源县| 吉林省| 临邑县| 峨眉山市| 梨树县| 卫辉市| 醴陵市| 祥云县| 芦山县| 蓬溪县| 阿坝县| 徐闻县| 上饶市| 巴林右旗| 东源县| 通州市| 中宁县| 达州市| 南陵县| 通渭县| 莱阳市| 红河县| 呼伦贝尔市| 香格里拉县| 邵武市| 岫岩| 宁波市| 工布江达县| 阿鲁科尔沁旗|