失效链接处理 |
Class(字节码)文件基础 PDF 下载
本站整理下载:
相关截图:
主要内容:
1.Class文件基础
(1)文件格式
Class文件的结构不像XML等描述语言那样松散自由。由于它没有任何分隔符号,
所以,以上数据项无论是顺序还是数量都是被严格限定的。哪个字节代表什么
含义,长度是多少,先后顺序如何,都不允许改变。
(2)数据类型
仔细观察上面的Class文件格式,可以看出Class文件格式采用一种类似于C语言
结构体的伪结构来存储,这种伪结构中只有两种数据类型:无符号数和表。
无符号数就是u1、u2、u4、u8来分别代表1个、2个、4个、8个字节。表是由
多个无符号数或其他表构成的复合数据类型,以“_info”结尾。在表开始位置,
通常会使用一个前置的容量计数器,因为表通常要描述数量不定的多个数据。
下图表示的就是Class文件格式中按顺序各个数据项的类型:
s2eyc6qr
(3)兼容性
高版本的JDK能向下兼容以前版本的Class文件,但不能运行以后版本的Class文件,
即使文件格式未发生任何变化。举例来说,JDK 1.7中的JRE能够执行JDK 1.5编译
出的Class文件,但是JDK 1.7编译出来的Class文件不能被JDK 1.5使用。这就是
target参数的用处,可以在使用JDK 1.7编译时指定-target 1.5。
2.一个简单的例子
package com.cdai.jvm.bytecode; public class ByteCodeSample { private String msg = "hello world"; public void say() { System.out.println(msg); } }
|