詳解Java虛擬機30個常用知識點之1——類文件結構
1. Java文件 ClassFileTest.java
package com.zxs.ssh.template.service; public class ClassFileTest { int m = 1; public int inc(){ return m+1; } }
2. Class文件ClassFileTest.class
javac ClassFileTest.java 編譯.java文件得到.class文件
JDK版本 1.8.0_201
.class文件可以用WinHex打開
3. javap -verbose ClassFileTest.class (javap是一個用于分析.class文件字節(jié)碼內(nèi)容的工具)
4. 分析Class文件
4.1 魔數(shù)
- a.格式:u4
- b.內(nèi)容 CA FE BA BE
- c.含義:代表這是.class文件
4.2 版本號
- a.格式:次版本號u2 + 主版本號u2
- b.內(nèi)容:00 00 00 34
- c.含義:0034即十進制52,jdk 1.1是45,1.2是46,因此52代表1.8,所以主版本號是1.8;0000即十進制0,所以次版本號是0;合起來就是1.8.0
4.3 常量池
常量個數(shù)u2+tag u1+length u2+bytes u1 起點00000008
4.4 訪問標志
u2 起點000000C2
4.5 類索引、父類索引和接口索引集合
u2+u2+u2(接口索引集合個數(shù))+u2 起點000000C4
4.6 字段表集合
u2(字段個數(shù))+u2(訪問標志)+u2(name_index)+u2(字段描述符索引)+u2(屬性表集合個數(shù))+u2(屬性名索引)+u4(屬性長度)+u1 起點000000CA
4.7 方法表集合
u2(方法個數(shù))++u2(訪問標志)+u2(name_index)+u2(方法描述符索引)+u2(屬性表集合個數(shù))+u2(屬性名索引)+u4(屬性長度)+u1 起點000000D4
包含兩個方法,第一個是構造器方法,起點是000000D6;另一個方法是inc方法,起點是0000010A
4.8 屬性表集合
u2(屬性表集合個數(shù))+u2(屬性名索引)+u4(屬性長度)+u1 起點00000136
以上所述是小編給大家介紹的Java虛擬機類文件結構詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
mybatisplus邏輯刪除基本實現(xiàn)和坑點解決
這篇文章主要介紹了mybatisplus邏輯刪除基本實現(xiàn)和坑點解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03Spring2.5.6開發(fā)環(huán)境搭建圖文教程
這篇文章主要為大家詳細介紹了Spring2.5.6開發(fā)環(huán)境搭建圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05Spring Data JPA 建立表的聯(lián)合主鍵
這篇文章主要介紹了Spring Data JPA 建立表的聯(lián)合主鍵。本文詳細的介紹了2種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04Spring Boot整合Spring Security的示例代碼
這篇文章主要介紹了Spring Boot整合Spring Security的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04基于Jenkins搭建.NET Core持續(xù)集成環(huán)境過程圖解
這篇文章主要介紹了基于Jenkins搭建.NET Core持續(xù)集成環(huán)境過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08Java NIO 文件通道 FileChannel 用法及原理
這篇文章主要介紹了Java NIO 文件通道 FileChannel 用法和原理,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01