java代码编译之后是如何运行的?不知道这些,面试官问你jvm问题,你只能懵圈

69 阅读2分钟

目录

从机器语言->汇编语言->高级语言

JVM的整体结构

java代码执行流程

java虚拟机种类(常用的就是HotSpot)


从机器语言->汇编语言->高级语言

计算机系统体系对我们来说越来越远,在不了解底层实现方式的前提下,通过高级语言很容易编写程序代码。但事实上计算机并不认识高级语言。

java就属于高级语言。

JVM的整体结构

java代码执行流程

java代码会进行两次编译,第一次生成class字节码文件,第二次使用JIT编译器将热点代码编译出来,进行缓存起来,增加程序性能。

java虚拟机种类(常用的就是HotSpot)

    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希望最大。