先准备一个简单的java文件
经过javac命令編译后得到一个class文件用UE编辑器打开后得到的class文件格式是如下这样的
从 的官网可以看到,class文件的结构是由以下的格式进行排列的u1,u2,u4,u8分别代表1个字节,2个字节4个字节,8个字节以“_info”结尾的则称为表。class文件的顺序长度都是都是固定,不可以随便变动
class文件的第一个首先是魔數魔数占4个字节,也就是CA FE BA BE,作用是确定文件是否为一个能被虚拟机识别的class文件 魔数之后就是次版本号(即00 00);主版本号(00 34);
各个版本的对應关系,本例中00 34也就是对应的是jdk1.8也就是说是由jdk1.8编译的。
常量池数量(00 3A),转换为十进制就是58也就是说有58个常量,
access_flags:访问标志主要标记的是接口或者类的信息,接口类型等