阅读offer来了java面试核心知识点精讲---jvm虚拟机篇章 解释执行和动态编译执行
2020-03-05 15:46
951 查看
1.类加载器子系统用于将编译好的.Class文件加载到JVM中。
2. 运行时数据区用于存储在JVM运行过程中产生的数据,包括程序计数器、方法区、本地方法区、虚拟机栈和虚拟机堆。
3 执行引擎包括即时编译器(JIT)和垃圾回收器GC,即时编译器用于将Java字节码编译成具体的机器码,垃圾回收器用于回收在运行过程中不再使用的对象。
本地接口库用于调用操作系统的native本地方法库完成具体的指令操作。
Java JIT(just in time)即时编译器是sun公司采用了hotspot虚拟机取代其开发的classic vm之后引入的一项技术,目的在于提高java程序的性能,改变人们“java比C/C++慢很多”这一尴尬印象。
说起来是编译器,但此编译器与通常说的javac那个编译器不同,它其实是将字节码编译为硬件可执行的机器码的。
图片来自于网络
如上图可以看出,整个java应用程序的执行过程如下:
1、源代码经javac编译成字节码,class文件
2、程序字节码经过JIT环境变量进行判断,是否属于“热点代码”(多次调用的方法,或循环等)
3、如是,走JIT编译为具体硬件处理器(如sparc、intel)机器码
4、如否,则直接由解释器解释执行。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 阅读offer来了java面试核心知识点精讲---jvm运行内存
- 2019年面试必备:最新Java核心知识点(1)—JVM
- JAVA文件编译执行与虚拟机(JVM)介绍
- JAVA 文件编译执行与虚拟机(JVM)简单介绍
- 深入理解java虚拟机阅读笔记四:java代码编译和执行过程
- 【java基础】.class文件由虚拟机的解释器解释为机器码,这个机器码是给JVM执行的机器码,还是类似于.exe给操作系统执行的机器码
- JAVA 文件编译执行与虚拟机(JVM)简单介绍
- Java jvm 加载机制及 其中解释执行和编译执行的区别
- JAVA文件编译执行与虚拟机(JVM)介绍(转)
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- JAVA 命令行下 编译,解释执行时 参数大全 javac java
- JVM知识点总览-高级Java工程师面试必备
- JAVA语言中编译执行和解释执行的区别?
- 深入理解 Java 虚拟机-Java 代码编译和执行的整个过程
- JVM学习02-Java代码编译和执行的整个过程
- 利用javax.tools动态编译执行java代码
- 动态编译和静态编译及Java执行
- java 编译 解释执行 基于栈和基于寄存器
- java内功 ---- jvm虚拟机原理总结,侧重于虚拟机类加载执行系统
- 深入理解Java虚拟机JVM高级特性与最佳实践阅读总结——第三章垃圾收集器与内存分配策略