01.适用JVM的class文件结构
u1的意思是: 占1个字节 (16进制的一个字节占两位00)
u2的意思是: 占2个字节
u4的意思是: 占4个字节
!的意思是:不确定,是动态计算的
02.class文件中的常量池
03.例子:
3.1魔数:
ca fe ba be:魔术,表示是一个合格的class文件
3.2次版本号和主版本号是指java版本的版本号:
00 00:次版本号。这个没啥好解释的把
00 34:主版本号 (3*15+4=52)= jdk1.8
3.3常量池
解析常量池
constant_pool_count是常量池大小:
00 20 =32。这里需要注意常量池是从1开始的,所以要减一,理论上是32个,实际是31个。具百度说,0是null。看图验证:工具是jclasslib,idea的插件
第一个常量池