JAVA虚拟机
Ian0903
这个作者很懒,什么都没留下…
展开
-
类文件结构
一、Class类文件结构Class文件格式采用一种类似于C语言结构体的伪结构来储存数据,这种伪结构中只有两种数据类型:无符号数和表。无符号数属于基本的数据类型,以u1、u2、u4、u8来分别代表1个字节,2个字节,4个字节,8个字节的无符号数。表是由多个无符号数或者其他表作为数据项构成的符合数据类型,所有表都习惯性地以“_info”结尾。魔数与Class文件的版本每个Class文件的头4个字节称为...原创 2018-05-03 16:08:31 · 183 阅读 · 0 评论 -
JVM字节码执行引擎
JVM执行引擎输入:字节码文件处理:字节码解析输出:执行结构运行时帧栈结构帧栈(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,是JVM运行时数据区中的虚拟机栈的栈元素。帧栈储存了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。每一个方法调用的开始和结束都对应着一个帧栈在虚拟机栈里面入栈和出栈。局部变量表局部变量是一组变量值储存控件,用于存放方法参数和方法内部定...原创 2018-05-04 16:35:23 · 235 阅读 · 0 评论 -
JAVA早期(编译期)优化
JVM编译器优化JVM的编译器的种类:1. 前端编译器:把.java变成.class的过程。如Sun的Javac,Eclipse JDT中的增量式编译器。2. JIT编译器:把字节码转变成机器码的过程。3. AOT编译器:静态提前编译,直接将*.java文件编译本地机器码的过程。Javac的编译过程Javac编译动作的入口是com.sun.tools.javac.main.JavaCompiler...原创 2018-05-04 20:12:26 · 401 阅读 · 0 评论 -
JAVA晚期(运行期)优化
JVM运行期优化Java程序在运行的期间,可能会有某个方法或者代码块的运行特别频繁时,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时JVM会将这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In Time Compiler,JIT编译器)。即时编译器(JIT)事实上,现在许多主流的商用虚拟机,都同时包含有解释器与编译...原创 2018-05-04 20:44:40 · 328 阅读 · 0 评论