您的位置:首页 > Web前端

阅读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、如否,则直接由解释器解释执行。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
huxingxing0942010105 发布了7 篇原创文章 · 获赞 0 · 访问量 199 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: