JVM虚拟机(一)_代码执行流程_编译器_生命周期
系统虚拟机与程序虚拟机(执行单个计算机程序)执行引擎(翻译者):将高级语言翻译为机器语言,让操作系统接收指令翻译字节码:保证响应时间,对字节码文件逐行解释执行,jit编译器对热点代码编译为机器指令并且缓存在方法区,下次可以直接调用(可以提升性能)主流:二者并存...
·
jdk有open与oraclejdk主要是 (免费vs商用(GC2VS1))的区别
系统虚拟机与程序虚拟机(执行单个计算机程序)
执行引擎(翻译者):将高级语言翻译为机器语言,让操作系统接收指令
解释器:翻译字节码(执行引擎):保证响应时间,对字节码文件逐行解释执行,
JIT编译器(执行引擎):对热点代码编译为机器指令并且缓存在方法区,下次可以直接调用(可以提升性能)
JIT通过计数器找到热点代码,在本地缓存(方法区)起来,下次直接执行(及时变异或者栈上替换),以此完成协同工作
主流:二者并存
(这个是前的)java编译器中:栈指令集架构的(寄存器指令集架构)反编译流程:
解释:java编译器,iconst2进栈,存储在istore(栈点位置为)1的位置上,
java编译器中的栈编译器与寄存器编译器
:栈指令集架构的(寄存器指令集架构)
JVM虚拟机(二)生命周期
也就是:通过引导类加载器,创建一个初始类,(不是obj类但是obj类也是通过引导类加载器而加载的)之后在这个类的main方法相继加载其他类的方法
相当于,在准备执行程序的时候发现必要条件都没有加载,所以先加载一个初始类把台子搭好
也就是:在需要自行java程序的时候虚拟机启动,重新结束虚拟机退出;所以真正在执行的是一个叫做java虚拟机的进程(虚拟机里来运行java代码)
更多推荐
已为社区贡献2条内容
所有评论(0)