今天看到了class文件中的解析部分简单做下笔记,在看一下内容前,先了解一下Class的伪结构,其中包含了两种数据类型:无符号数 和 表。
class文件中头4个字节成为魔数(Magic Number), Java编译出的魔数为 0xcafebabe如下图,使用这个组合的原因可以自己去查一下
魔数后面依次是 5、6字节是次版本号(Minor Version),7、8字节存储的是主版本号(Major Version)JDK就是通过这个信息来区分能否被虚拟机所执行。了解JDK版本号的话就能够看出,文中使用的是JDK1.8(JDK1.7能支持的 版本号最大为 51,图中的版本号为52,class是16进制)
其它的占位如下图,就不进行描述了