文件結(jié)構(gòu)
以8字節(jié)為一個單元
.Class測試類
public class TestClass {
private int m;
public int inc(){
return m+1;
}
}
.class文件結(jié)構(gòu)
1.魔數(shù)
2.class版本
3.常量池
存放字面量與符號引用幽钢。
字面量(更接近JAVA層面):例如字符串常量、聲明final的常量值
符號引用:類和接口的全限定名、字段的名稱和描述符、方法的名稱和描述符奢人。
當虛擬機運行時攻走,需要從常量池中獲得對應符號的引用殷勘,在類創(chuàng)建時或運行時解析,翻譯到具體的內(nèi)存地址中昔搂。
即Class文件中不保存各個方法玲销、字段最終的內(nèi)存布局。
在常量池中摘符,前兩個字節(jié)代表常量池容量CP_NUM贤斜,一共有CP_NUM個CP_INFO
**CP_INFO
u1代表1字節(jié),u2代表2字節(jié)
Constant結(jié)構(gòu)
常量池總覽
4.訪問標志
image.png
5.索引
類索引
u2(2個字節(jié))用來確定這個類的全限定名逛裤,指向某塊CP_INFO
父類索引
u2(2個字節(jié))用來確定這個類的父類的全限定名指向某塊CP_INFO
接口索引集合
描述了這個類實現(xiàn)了哪些接口瘩绒。前2個字節(jié)代表集合大小n,后面接n*u2塊带族,代表接口索引實現(xiàn)了n個接口
6.字段表集合
filed_info為字段表集合锁荔,包含了類級變量及實例集變量,
頭2個字節(jié)為集合大小蝙砌。集合內(nèi)單位為filed
private int m;
字段訪問標識:private
描述符含義:int
簡單名稱:m
filed結(jié)構(gòu)
字段訪問標識
描述符含義
7.方法表集合
類似字段表集合的結(jié)構(gòu)阳堕。
8.屬性表集合
順序沒有硬性要求
jvm虛擬機字節(jié)指令表
哪天心情好再啃8。择克≈龆枯了。