复杂字节码文件的分析过程
对MyTest2的字节码进行分析。。。(这一节在视频中主要是对常量字节码进行了分析)
按照生成的字节码的顺序,再按照下面的字节码整体结构类型顺序进行分析即可!!!!
- 对于魔数,版本号,常量个数分析是固定的;
- 对于每个常量的分析需要对照下面的这个表:
- 先分析U1是几就对应那一种常量类型,然后对应下面的U2、U4、U1取相应的字节长度分析;这个时候也需要通过:javap -verbose -p jvm/bytecode/MyTest2 打开助记符分析~!
- 上面的表中描述了11中数据类型的结果,其实在jdk1.7之后又增加了3种:
- CONSTANT_MethodHandle_info,CONSTANT_MethodType_info以及CONSTANT_InvokeDynamic_info。这样一共是14种
- 先分析U1是几就对应那一种常量类型,然后对应下面的U2、U4、U1取相应的字节长度分析;这个时候也需要通过:javap -verbose -p jvm/bytecode/MyTest2 打开助记符分析~!
- 剩下的按照前面的每一种类型对应下面所拥有的结构进行分析即可。
- 注意:
当一个类中出现静态变量的时候,就会出现这样一个块,并对静态变量进行初始化!