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