您好,登錄后才能下訂單哦!
這篇文章主要介紹了java之JVM字節碼結構的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1.SpringMVC,Spring Web MVC是一種基于Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架。2.Shiro,Apache Shiro是Java的一個安全框架。3.Mybatis,MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。4.Dubbo,Dubbo是一個分布式服務框架。5.Maven,Maven是個項目管理和構建自動化工具。6.RabbitMQ,RabbitMQ是用Erlang實現的一個高并發高可靠AMQP消息隊列服務器。7.Ehcache,EhCache 是一個純Java的進程內緩存框架。
1、魔數
所有.class文件的前四個字節都是魔數,魔數的固定值為0xCAFEBABE。魔數放在文件的開頭,JVM可以根據文件的開頭判斷這個文件是否有可能是.class文件。如果是這樣的話,之后的操作會繼續下去。
2、版本號
版本號為魔數后的4個字節,前2個字節顯示下一個版本號,后2個字節顯示主版本號。
主版本號后的字節是常量池入口。在常量池中保存兩種常量:字面量和符號引用。字面量在代碼中聲明為Final的常量值,符號引用類別和界面的全局限定名、字段的名稱和說明符、方法的名稱和說明符。常量池整體分為常量池計數器和常量池數據區兩部分。
3、常量池
常量池結束后的兩個字節,描述了這個Class是類還是界面,以及是否用Public、Abstract、Final等裝飾符裝飾。
4、訪問標志
常量池結束之后的兩個字節,描述該Class是類還是接口,以及是否被Public、Abstract、Final等修飾符修飾。
5、當前類名
訪問標志后的兩個字節,描述的是當前類的全限定名。這兩個字節保存的值為常量池中的索引值,根據索引值就能在常量池中找到這個類的全限定名。
6、父類名稱
當前類名后的兩個字節,描述父類的全限定名,同上,保存的也是常量池中的索引值。
7、接口信息
父類名稱后為兩字節的接口計數器,描述了該類或父類實現的接口數量。緊接著的n個字節是所有接口名稱的字符串常量的索引值。
8、字段表
字段表用于描述類和接口中聲明的變量,包含類級別的變量以及實例變量,但是不包含方法內部聲明的局部變量。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java之JVM字節碼結構的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。