首页 > 图灵资讯 > java面试题>正文

金三银四精选java面试题-JVM的主要组成部分

2024-01-07 10:15:15

 

你能谈一下JVM的主要组成部分吗?

JDKJRE的区别作为一个Java开发,我相信每个人都知道。但是很多人却不知道JRE是Java虚拟机的实现。它可以分析字节码、解释代码然后执行它。我们作为开发人员,了解JVM的体系结构非常重要。它可以指导我们去写出性能良好的代码。能够很好的去分析性能问题。接下来带领大家来学习JVM的体系结构和它的组成部分。

我们看上面的体系图,里面的东西虽然有点多看起来很累,我们先别去看细节,我们就先关注三个最外围的部分:

  • ClassLoader子系统
  • 运行时数据区
  • 执行引擎

类加载

当 Java 虚拟机将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取进内存,从而进行解析、运行等整个过程,这个过程我们叫:Java 虚拟机的类加载机制。JVM 虚拟机执行 class 字节码的过程可以分为七个阶段:加载、验证、准备、解析、初始化、使用、卸载。

运行时数据区

「运行时数据区」也可以叫做是「虚拟机内存结构」我们通常叫的比较多的还是JVM虚拟机内存结构。它指 JVM 运行时会把它管理的内存划分成若干个不同的数据区域 ,简单的说就是不同的数据放在不同的地方。共分为五个部分:方法区、堆、虚拟机栈、程序计数器、本地方法栈。

虚拟机栈程序计数器线程私有的,而方法区是线程共享的区域。

执行引擎

我们最终代码是要运行的,这部分工作就是由执行引擎来完成。它会把分配给运行时数据区的字节码交给执行引擎来执行。执行引擎则会读取字节码并一段一段的执行它。

Java是一门半解释半编译型语言,所以执行引擎又分为了解释器JIT编译器,解释器就是当Java虚拟机启动时根据预定义的规范把字节码翻译成对应的机器码逐行去解释执行。而JIT编译器是虚拟机将源代码直接编译成机器码。

 

上一篇 金三银四精选java面试题-什么是JVM吗?它是如何工作的?
下一篇 金三银四精选java面试题-你能解释一下JVM类加载器的作用吗?

文章素材均来源于网络,如有侵权,请联系管理员删除。