阅读offer来了java面试核心知识点精讲---jvm虚拟机篇章 解释执行和动态编译执行

阅读offer来了java面试核心知识点精讲---jvm虚拟机篇章 解释执行和动态编译执行_第1张图片
1.类加载器子系统用于将编译好的.Class文件加载到JVM中。
2. 运行时数据区用于存储在JVM运行过程中产生的数据,包括程序计数器、方法区、本地方法区、虚拟机栈和虚拟机堆。
3 执行引擎包括即时编译器(JIT)和垃圾回收器GC,即时编译器用于将Java字节码编译成具体的机器码,垃圾回收器用于回收在运行过程中不再使用的对象。
本地接口库用于调用操作系统的native本地方法库完成具体的指令操作。

Java JIT(just in time)即时编译器是sun公司采用了hotspot虚拟机取代其开发的classic vm之后引入的一项技术,目的在于提高java程序的性能,改变人们“java比C/C++慢很多”这一尴尬印象。

说起来是编译器,但此编译器与通常说的javac那个编译器不同,它其实是将字节码编译为硬件可执行的机器码的。

图片来自于网络
阅读offer来了java面试核心知识点精讲---jvm虚拟机篇章 解释执行和动态编译执行_第2张图片

如上图可以看出,整个java应用程序的执行过程如下:
1、源代码经javac编译成字节码,class文件
2、程序字节码经过JIT环境变量进行判断,是否属于“热点代码”(多次调用的方法,或循环等)
3、如是,走JIT编译为具体硬件处理器(如sparc、intel)机器码
4、如否,则直接由解释器解释执行。

你可能感兴趣的:(阅读offer来了java面试核心知识点精讲---jvm虚拟机篇章 解释执行和动态编译执行)