当前位置 博文首页 > A_art_xiang的博客:java代码编译之后是如何运行的?不知道这些
目录
从机器语言->汇编语言->高级语言
JVM的整体结构
java代码执行流程
java虚拟机种类(常用的就是HotSpot)
计算机系统体系对我们来说越来越远,在不了解底层实现方式的前提下,通过高级语言很容易编写程序代码。但事实上计算机并不认识高级语言。
java就属于高级语言。
java代码会进行两次编译,第一次生成class字节码文件,第二次使用JIT编译器将热点代码编译出来,进行缓存起来,增加程序性能。
? ? Classic VM、Exact VM、HotSpot VM、BEA公司(已经被oracle收购)的JRocket、IBM的J9、KVM和CDC/CLDC HotSpot(针对Java ME)、Azul VM、BEA Liquid VM、Zing VM、Apache Harmony、Microsoft VM、Taobao VM、Dalvik VM(执行dex文件,通过class转换来的)
JRocket虚拟机应该是最快的,专注于服务器端应用,没有解释器。
HotSpot VM、BEA公司(已经被oracle收购)的JRocket、IBM的J9是影响力最大的三个虚拟机。
Azul VM、BEA Liquid VM与具体硬件平台绑定,软硬件配合的专有虚拟机。
Graal VM(2018.4公布)如果有一天说有别的虚拟机替换HotSopt VM,那么Graal VM希望最大。
cs