JVM-類文件結構


  無關性的基石

  I> "平台無關性"實現在操作系統的應用層上:sun公司以及其他虛擬機提供商發布了許多可以運行在各種不同平台上的虛擬機,這些虛擬機都可以載入和執行同一種平台無關的字節碼,從而實現了程序的"一次編碼,到處運行".
  II> 各種不同平台的虛擬機與所有平台都統一使用的程序存儲格式--字節碼是構成平台無關性的基石.
  III> Java虛擬機不和包括Java 在內的任何語言綁定,它只與"class文件"這種特定的二進制文件格式所關聯,class文件中包含了Java虛擬機指令集和符號表示以及其他若干輔助信息.
  IV> Java語言中的各種變量,關鍵字和運算符的語義最終都是由多條字節碼命令組成的,因此字節碼命令所能提供的語義描述能力肯定會比Java語言本身更強大.

 

 

Class類文件結構


  I> Class文件是一組以8位字節為基礎單位的二進制流,各個數據項目嚴格按照順序緊湊地排列在Class文件中,中間沒有添加任何分隔符,這使得整個Class文件中存儲的內容幾乎全部是程序運行的必要數據,沒有空隙存在.當遇到需要占用8為字節以上空間的數據項時,則會按照高位在前的方式分割成若干個8為字節進行存儲.
  II> 無符號數屬於基本的數據類型,以u1,u2,u4,u8來代表1個字節,2個字節,4個字節,8個字節的無符號數,無符號數可以用來描述數字,索引引用,數量值或者按照UTF-8編碼構成字符串指.
  III> 表是由多個無符號數或者其他作為數據項構成的復合數據類型,所有表都習慣性地以"_info"結尾.表用於描述有層次關系的復合結構的數據,整個Class文件本質上就是一張表.


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com