初识JVM
Java语言规范(语法,变量,类型,文法, 还有Java内存模型,类加载链接的过程, public static final abstract的定义, 异常,数组的使用等) JVM规范(Class文件类型,运行时数据,帧栈,虚拟机的启动,虚拟机的指令集,JVM规范主要定义JVM的实现(class文件格式,数字的内部表示和存储,returnAddress数据类型定义,定义PC,堆,栈,方法区))
整数的表达 原码:第一位为符号位(0为正数,1为负数) 反码:符号位不动,原码取反 负数补码:符号位不不动,反码加1 正数补码:和原码相同
为什么使用补码 +0和-0的补码都是全0 统一加减法运算(符号位参与运算)
浮点数的表达 IEEE754 s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm s符号位 e指数位(8位)(e全0则尾数附加位为0, 否则尾数附加位为1) m尾数位(23位,通过指数位,隐含24位精度) s*m*2^(e-127)
一些特殊的方法 <clinit>
<init>
VM指令集 类型转换(l2i) 出栈入栈操作(aload astore) 运算(iadd isub) 流程控制(ifeq ifne) 函数调用(invokevirtual invokeinterface invokespecial invokestatic)
JVM虚拟机小v要对Java Library提供以下支持 反射java.lang.reflect ClassLoader 初始化class和interface 安全相关 java.security 多线程 弱引用
JVM的编译 源码到JVM指令的对应格式 javap JVM反汇编的格式(<index> <opcode> [<operand1> [<operand2>...]] [<comment>]
)
发表回复