java類文件內容介紹
一、什麼是Java類文件
Java類文件是Java程序的二進制表示形式。每一個類文件代表一個類或者接口。不可能在一個類文件中放入多個類或者接口。這樣就使得無論類文件是在哪一種平台上生成,都可以在任何主機上執行。
雖然類文件是Java體系結構的一部分,但是他並不是與Java語言不可分的。你可以將其他語言的程序編譯為類文件,也可以將Java程序文件編譯為其他二進制形式。
Java類文件是一個基於8-bit字節的二進制流。數據塊順序的、無分割符的、big-endian的形式存儲。
二、類文件的內容
Java的類文件中包含了所有Java虛擬機所需要的關於類和接口的信息。所有類文件中的信息都以以下的四種基本類型的存儲:
Table 6-1. Class file "primitive types"
u1 a single unsigned byte
u2 two unsigned bytes
u4 four unsigned bytes
u8 eight unsigned bytes
類文件中的主要部分以表6-2的順序存儲:
Table 6-2. Format of a ClassFile Table
Type& #9;Name Count
u4 magic 1
u2 minor_version 1
u2 major_version 1
u2 constant_pool_count 1
cp_info constant_pool constant_pool_count-1
u2 access_flags 1
u2 this_class 1
u2 super_class 1
u2 interfaces_count 1
u2 interfaces interfaces_count
u2 fields_count 1
field_info fields fields_count
u2 methods_count 1
method_info methods methods_count
u2 attributes_count 1
attribute_info attributes attributes_count
1、魔術編碼(magic)
每一個Java類文件的`開頭四個字節都是魔術編碼(OxCAFEBABE)。通過魔術編碼可以很容易識別類文件。
2、副版本號和主版本號(minor_version and major_version)
剩下的四個字節是副版本號和主版本號。但Java技術在進化時,一些新的特性可能會被加入到類文件中。每一次類文件格式的變化,都會相應的改變版本號。虛 擬機通過版本號來識別自己能夠處理的類文件。Java虛擬機往往只能處理一個給定的主版本號和其下的一些副版本號。虛擬機必須拒絕那些不再處理範圍內的類 文件。
-
java xp環境變量設置
本文實例為大家分享了java的環境變量設置方法,供大家參考,具體內容如下安裝好jdk後找到我的電腦(右鍵)——》屬性——》高級選項卡——》環境變量,裏面有管理員的用户變量,有系統變量。選哪一個都無所謂,我選的是Administrator的用户變量即管理員的.用户變量,點擊“新...
-
Java網絡基礎和Socket通信基礎
導語:Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裏難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。下面我們來看看Java網絡基礎和Socket通信基礎,希望對大家有所幫助。一、網絡基礎1、InetAddressInetAddres...
-
Java多線程知識點
引導語;多線程是指從軟件或者硬件上實現多個線程併發執行的技術。以下是本站小編分享給大家的Java多線程知識點,歡迎閲讀!1.1多線程的概念多線程編程的含義是你可將程序任務分成幾個並行的子任務。特別是在網絡編程中,你會發現很多功能是可以併發執行的。比如網...
-
經典Java基礎面試題
Java技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、遊戲控制枱、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社羣。下面小編給大家介紹經典Java基礎面試題,歡迎閲讀!經典Java基礎面試題1、如果main方法被聲明為...