上一次【https://www.cnblogs.com/webor2006/p/9595300.html】了解了synchronized关键字在字节码中的表现形式了,接下来则从头至尾完整的对以下这个稍复杂的字节码文件进行分析,其源文件为:
其对于应二进制字节码信息用“Hex Fiend”打开:
可以发现此次的要比上一次的要复杂多了,所以说硬着头皮再来完整的分析一遍,因为源文件该有的信息基本上都已经有了,操练一次之后关于字节码的东东基本上也就学得比较扎实了,当然这一次分析不会像上一次那么详细,毕境熟练之后分析也会用稍快的方式,在正式分析之前首先得回忆一下Java字节码的整体结构,如下:
总共有10个部分,下面一个个部分进行分析:
Magic Number:
数四个字节:
不多说了~
Version:
往后数四个字节:
为52,为JDK1.8,其中minor_version和major_version如下:
Constant Pool:
这部分内容是最多的,先来数2个字节代表有多少个常量:
也就是有71个常量,查看一下jclasslib是否是这样:
Access Flags:
The Class Name:
Super Class Nmae: