java class檔案魔數、版本號
每個class檔案的前四個位元組表示魔數,他的唯一作用是確定這個檔案是否是一個能被虛擬機器接受的class檔案, 很多檔案儲存標準中都使用魔數來進行身份識別,比如圖片格式,如gif、jpg等在檔案中都存在魔數,使用魔數而不是副檔名來進行識別主要基於安全方面的考慮。因為副檔名可以隨便改動。檔案格式的制定者可以自有的選擇魔數值。
緊接著魔數的4個位元組後,第5個和第6個表示次版本號。第7、8表示主版本號。如下圖
用16進位制編輯器開啟 可以看見前4個位元組的16進製表示的是 0xCAFEBASE 表示魔數,0x00表示次版本號
0x32為主版本號 即為十進位制的50 也就是說這個class檔案可以被jdk1.6以上版本的虛擬機器所執行。
class檔案版本號如下圖
相關推薦
java class檔案魔數、版本號
每個class檔案的前四個位元組表示魔數,他的唯一作用是確定這個檔案是否是一個能被虛擬機器接受的class檔案, 很多檔案儲存標準中都使用魔數來進行身份識別,比如圖片格式,如gif、jpg等在檔案中都存在魔數,使用魔數而不是副檔名來進行識別主要基於安全方面的考慮。因為副檔名可
java class檔案魔數與版本對應
major minor Java platform version 45(2D) 3 1.1 46(2E) 0 1.2 47(2F) 0 1.3 48(30) 0
Java class檔案的JDK編譯版本號
比如用UltraEdit(UE)開啟class檔案(如果是在linux,比如Ubuntu下,用$hexdump -C Test.class),你會看到諸如第一行是: 00000000h: CA FE BA BE00 00 32 00 A9 07 00 02 01 00 前四個位元組為固定的 CA FE B
怎麼知道Java class檔案JDK編譯的版本號
首先用一些二進位制檢視器開啟class檔案,比如od或者hexdump工具。 od -x hello.class 或者 hexdump hello.class 我們會看到類似於下面的輸出: feca
深入理解Java虛擬機器筆記---class類檔案魔數,版本,常量池
魔數 每個class檔案的頭4個位元組稱為魔數(Magic Number),其值為:0xCAFEBABE,它的唯一作用是用於確定這個檔案是否為一個能被虛擬機器接受的class檔案。使用魔數而不是副檔名來進行識別主要是基於安全的考慮,因為檔案的副檔名可以隨意地被改動。 版本號
檢視java class檔案的編譯版本號
用maven做專案依賴管理,依賴了一個其他組開發的一個基礎包。結果,在使用maven進行編譯打包的時候,報了錯: Unsupported major.minor version 51.0。 注:我本機上目前只安裝了 jdk 1.8 使用Eclispse自帶的
完整版java讀取apk、ipa包名、版本名、版本號等資訊
有時候,我們上傳apk或者是ipa檔案的時候,是需要讀取到裡面的一些資訊的,比如軟體的包名,以及其版本資訊等。在網上搜索了一下資料 , 找了很多版本,對於apk檔案的版本號,一直讀取不到,在這裡,筆者自己總結了,讀取apk、ipa檔案的一些程式碼,大家可以參考下
Android菜鳥筆記- 獲取未安裝的APK圖標、版本號、包名、名稱、是否安裝、安裝、打開
ack ear 例如 start true intent ble post oca 周末閑來無事,把Android的基礎知識拿出來復習復習,今天主題是《獲取未安裝的APK圖標、版本號、包名、名稱、是否安裝、跳轉安裝、打開》 一、獲取APK圖標 通常讀取APK的圖標能夠用
怎樣查看class文件的jdk版本號
技術 cin jdk1.7 ont 分享 table bsp art add 1、事先編譯好一個class文件。如:TestVersion.class 2、使用UltraEdit或Editplus打開class文件,我這裏使用的editplus,如圖: 3、
Java發展的時間表。 (版本號 名稱 中文名 發布日期)
時間日期 jtable beta 編譯 5.0 企業版 evel 簡化 正版 JDK 1.1.4 Sparkler 寶石 1997-09-12 JDK 1.1.5 Pumpkin 南瓜 1997-12-13 JDK 1.1.6 Abigail 阿比蓋爾--女子名 199
(第二次作業)運用Java統計字符數、單詞數、行數
jdk下載 函數 單詞 load asn lac 二次 htm ref ---恢復內容開始--- Gitee項目地址:項目地址
深入理解Java Class檔案格式(九)
經過前八篇關於class檔案的部落格, 關於class檔案格式的內容也基本上講完了。 本文是關於class檔案格式的最後一篇。 在這篇部落格中, 將會講解關於方法的幾個屬性。 理解這篇部落格的內容, 對於理解JVM執行引擎起著重要作用。 關於虛擬機器執行引擎有關的內容, 會在本專欄後面的部落格中涉及
深入理解Java Class檔案格式(八)
在本專欄的第一篇文章 深入理解Java虛擬機器到底是什麼 中, 我們主要講解了什麼是虛擬機器, 這篇部落格是對JVM的一個概述。 在隨後的幾篇文章中,一直在講解class檔案格式。 在今天這篇部落格中, 將會繼續講解class檔案中的其他資訊。 在本文中, 將會講解class檔案中的最後一
深入理解Java Class檔案格式(七)
本專欄列前面的一系列部落格, 對Class檔案中的一部分資料項進行了介紹。 本文將會繼續介紹class檔案中未講解的資訊。 先回顧一下上面一篇文章。 在上一篇部落格中, 我們介紹了: this_class 對當前類的描述 super_class &
深入理解Java Class檔案格式(六)
經過前幾篇文章, 終於將常量池介紹完了, 之所以花這麼大的功夫介紹常量池, 是因為對於理解class檔案格式,常量池是必須要了解的, 因為class檔案中其他地方,大量引用了常量池中的資料項。 對於還不瞭解常量池的讀者, 如果想要深入瞭解class檔案格式, 或者想繼續讀這篇部落格和本專
class檔案的載入、初始化、例項化
class檔案的載入包含以下過程:載入(load class檔案)-校驗-準備-解析-初始化-例項化,上述過程是大致過程,具體過程可以參考:jvm class檔案載入過程。 看下面的程式碼樣例: package staticclass; public class StaticC
java class檔案的載入
java class檔案載入過程:jvm把描述類的資料從class檔案載入(loading)到記憶體(java方法區)中,中間對資料進行校驗(verification)、轉換解析(resolution)和初始化(initialization),最終形成可以被jvm直接使用的Jav
Shell指令碼通過Java class檔案啟停Java程式
通過Shell指令碼啟動和停止Java程式(文章末尾附指令碼和程式原始碼地址) 步驟: 1,通過shell啟動指令碼啟動mainclass(非java -jar的方式) 2,記錄程序id 3,通過shell停止指令碼殺掉程序 示例專案結構和主類程式碼: 將工程編譯成
Java Class檔案結構
平臺無關性和語言無關性 Java在剛剛誕生的時候提出過一個宣傳口號:“一次編寫,到處執行”,這句話充分表達了軟體開發人員對衝破平臺界限的渴求。“與平臺無關”的理想最終實現在作業系統的應用層上:Sun公司及其他虛擬機器提供商釋出了許多可以執行在各種不同平臺上的虛
JAVA SFTP檔案上傳、下載及批量下載
Java Jsch 1.jsch官方API檢視地址(附件為需要的jar) http://www.jcraft.com/jsch/ 2.jsch簡介 JSch(Java Secure Channel)是一個SSH2的純Java實現。它允許你