目录
JVM规范的主要内容
1)字节码指令集(相当于中央处理器CPU)
Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码 (opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(operand)所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。
操作码一列中的T就跟泛型一样,虚拟机根据不同的数据类型会把T替换掉,提供不同的指令。
JVM指令分类
1、加载和存储指令 2、算术指令 3、类型转换指令 4.操作数栈管理指令 5.控制转移指令 6.方法调用和返回指令
2)Class文件的格式
3)数据类型和值
4)运行时数据区
5)栈帧
6)特殊方法
1、<init>:实例初始化方法,通过JVM的invokespecial指令来调用。
2、<clinit>:类或接口的初始化方法,不包含参数,返回void。
7)类库
Java虚拟机必须要对一些Java类库提供支持,否则这些类库根本无法实现,比如下面这些:
1、反射 2、加载或创建类或接口,如ClassLoader 3、连接和初始化类和接口的类 4、安全,如security 5、多线程 6、弱引用 7、异常 8、虚拟机的启动、加载、链接和初始化