类文件结构(待整理)

实现语言无关性的基础是虚拟机字节码存储格式。
Java虚拟机只和“Class文件”(特定的二进制文件格式)关联。
Class文件:Java虚拟机指令集和符号以及辅助信息。

语言无关性

Class类文件结构

Class文件是一组以8位字节为基础单位的二进制流,数据项目紧凑排列,无任何分隔符。
类似于C语言的伪结构,数据类型:无符号数,表。
无符号数:u1、u2、u4、u8代表1个字节、2个字节、4个字节、8个字节无符号数,可以描述数字、索引引用、数量值、按UTF-8编码的字符串值。
表:有层次关系的复合结构数据,以“_info”结尾
Class文件头4个字节:魔数(确定这个文件是否为一个能被虚拟机接受的Class文件)。0xCAFEBABE
紧接着4个字节存储Class文件版本号:5,6为次版本号;7,8,为主版本号
接下来是常量池入口:u2类型数据(常量池容量计数值,计数从1开始)索引0表示:不引用任何一个常量池项目;
除常量池容量计数以外,索引集合、字段表集合、方法表集合等都是从0开始。
常量池中两大常量:字面量、符号引用。
字面量:文本字符串、声明为final的常量值
符号引用:类和接口的全限定名、字段的名称和描述符、方法的名称和描述符。
java代码编译的时候,在虚拟机加载Class文件的时候进行动态连接。虚拟机运行时,从常量池获得对应的符号引用,再在类的创建时或运行时解析、编译到具体的内存之中。
常量池中每一项常量都是一个表:190ye

https://blog.csdn.net/qq_26222859/article/details/73135660

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值