jvm的概念
- jvm是java virtual machine的简称。意为java虚拟机。
- jvm使用软件模拟java字节码的指令集。
规范
java语言规范
- 语法
if-else-else if、函数等语法
- 词法
行终结符、空白符、注释、标识符、关键字等
- java内存模型
- 类加载连接过程
- 异常
- ...
jvm规范
jvm主要定义二进制class文件和jvm指令集等。java语言和jvm相对独立,groovy、clojure、scala等也可以运行在jvm中。
- class文件格式
- 数字的内部表示和存储
byte -128 to 127 (-27 to 27 - 1)
- returnaddress数据类型定义
指向操作码的指针。不对应java数据类型,不能在运行时修改。finally实现需要
- 定义pc、堆、栈、方法区
- 整数、浮点数的表示与定义
- 特殊的方法
- vm指令集
- 类型转化
l2i
- 出栈入栈操作
aload astore
- 运算
iadd isub
- 流程控制
ifeq ifne
- 函数调用
invokevirtual invokeinterface invokespecial invokestatic
- jvm需要对java library 提供以下支持
- 反射 java.lang.reflect
- classloader
- 初始化class和interface
- 安全相关 java.security
- 多线程
- 弱引用
- jvm的编译
- 源码到jvm指令的对应格式
- javap
- jvm反汇编的格式
(index) (opcode) [ (operand1) [ (operand2)... ]] [(comment)]
如对本文有疑问,
点击进行留言回复!!
网友评论