类文件结构1(基础)

Java代码:

package org.fenixsoft.clazz;

 

public class TestClass{

 

       private int m;

 

       public int inc(){

              return m+1;

       }

}

Javap 反编译:

 

Class16进制:

常量池:

 

CA FE BA BE魔数(固定值)

00 00 次版本 转换10进制0

00 33 主版本 转换10进制为51,版本号51.0对应JDK 1.7.0

00 13 常量池常量有18项常量,索引值范围1-18,以下为1-18索引对应:

0A 常量池的项目类型标志为10,类型为constant_methodref_info(类中的方法的符号引用)

00 04  下标4

00 0F  下标15

09 常量池的项目类型标志为9,类型为constant_fieldref_info(字段的符号引用)

00 03 下标3

00 10 下标16

07 常量池的项目类型标志为7,类型为constant_class_info(类或接口的符号引用)

00 11 下标17

07 常量池的项目类型标志为7,类型为constant_class_info(类或接口的符号引用)

0012 下标18

01 常量池的项目类型标志为1,类型为constant_utf8_info(utf-8编码的字符串)

00 01 字符串长一个字节

6D   10进制109=”m”

01 常量池的项目类型标志为1,类型为constant_utf8_info(utf-8编码的字符串)

00 01 字符串长一个字节

49   10进制73=”I”

01 常量池的项目类型标志为1,类型为constant_utf8_info(utf-8编码的字符串)

00 06 字符串长六个字节

3C 69 6E 69 74 3E       10进制60 105 110 105 116 62 的ASCII码对应“<init>”

01 常量池的项目类型标志为1,类型为constant_utf8_info(utf-8编码的字符串)

00 03 字符串长三个字节

28 29 56   10进制40 41 86的ASCII码对应”()V”

01 00 04 43 6F 64 65  同上字符串类型4字节为”Code”

01 00 0F 4C 69 6E 65 4E 75 6D 62 65 72 54 61 62 6C 65 同上字符串类型15字节为” LineNumberTable”

01 00 03 69 6E 63 同上字符串类型3个字节为”inc”

01 00 03 28 29 49 同上字符串类型3个字节为”()I”

01 00 0A 53 6F 75 72 63 65 46 69 6C 65   同上字符串类型10个字节为” SourceFile”

01 00 0E 54 65 73 74 43 6C 61 73 73 2E 6A 61 76 61   同上字符串类型14个字节为”TestClass.java”  

0C  标志为12,类型为constant_NameAndType_info(字段或方法的部分符号引用)               

00 07 00 08   下标7和8对应

0C 标志为12,类型为constant_NameAndType_info(字段或方法的部分符号引用)

00 05 00 06   下标5和6对应

01 00 19  标志1字节长25

63 6F 6D 2F 6A 78 6A 2F 77 6F 72 64 50 69 63 2F 54 65 73 74 43 6C 61 73 73 对应字符串” com/jxj/wordPic/TestClass”

01 00 10  标志1字节长16

6A 61 76 61 2F 6C 61 6E 67 2F 4F 62 6A 65 63 74  对应字符串”java/lang/Object”

常量池结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值