Java 序列化 格式(二)

2014-11-24 02:25:53 · 作者: · 浏览: 1
// integer 'J' // long 'S' // short 'Z' // boolean 00 07: 域名字的长度 76 65 72 73 69 6F 6E: version, 域名字描述 0x78: TC_ENDBLOCKDATA,对象块结束的标志; 0x70: TC_NULL, 说明没有其他超类的标志
下一步就是把实例对象的实际值输出了。这时候是从parent Class的域开始的 64 : parent中version值 64: ComplexSerialFormat 中值
再往后的bytes比较有意思,算法需要描述contain类的信息,要记住,现在还没有对contain类进行过描述 73 TC_OBJECT, 声明这是一个新的对象 72 TC_CLASSDESC声明这里开始一个新Class 00 16 类名的长度 63 6f6d 2e79 6c6e 2e73 6572 6961 6c2e 436f 6e 74 6169 6e :contain,类名描述; 00 0000 0000 0000 01:8字节的 SerialVersionUID , 序列化 ID 02: 标记号.该值声明该对象支持序列化 00 01:该类所包含的字段个数 42:表示 B,代表Byte,其余类型有: 'B' // byte 'C' // char 'D' // double 'F' // float 'I' // integer 'J' // long 'S' // short 'Z' // boolean 00 07: 域名字的长度 76 65 72 73 69 6F 6E: version, 域名字描述 0x78: TC_ENDBLOCKDATA,对象块结束的标志。 0x70: TC_NULL,没有超类了。 输出域的值信息: 00: 域值为00 64: 域值为100