Class文件是一个二进制字节流
· 数据类型:u1 u2 u4 u8 和_info(表类型)
_info的来源是hotspot源码中的写法
· 如何查看16进制的Class File
Sublime、notepad、Idea插件 BinEd
观察Byte Code的方法
Javap、JBE(可以直接修改)、JClassLib-IDEA的插件
Class File的构成:
· ClassFile{
u4:magic
u2:minor_version
u2:major_version
cn_info_constant_pool[constant_pool_count -1]
……..
}
Magic Number:
Minor Version:最小版本(5.01中的.01)
major Version:最大版本(5.01中的5)
constant_pool:长度为constant_pool_count-1的表
常量池编号从1开始 0不指向任何常量池
access flags:ACC_PUBLIC 0X0001 为public类型(acc_super 遗留问题) 0X0021 是public 和acc_super (0x0020)按位与的结果
this.class :当前的class文件指向常量池里面的内容
super.class:父类指向常量池的内容
constant_pool{
CONSTANT_Methodref_info:
}
JVM官方文档 : https://docs.oracle.com/javase/specs/jvms/se16/jvms16.pdf
主要查看6、7节
这个是Class文件的详细说明可将图片保存下来进行观看或者后台回复
Class二进制图片获取
本内容视频可参考:
度盘链接: https://pan.baidu.com/s/139mIzP7ERKa_o_GPqMdOhg 提取码:msyj
声明:以上资料来源于互联网经本人整理而发,如有侵权联系删之