Java面试知识点(九十)JVM组成部分

一、计算机组成结构

在这里插入图片描述

计算机的CPU、内存、显卡等等属于计算机的硬件

常用的Windows、Linux属于计算机的操作系统

而java的虚拟机,也就是我们常说的JVM是运行在操作系统之上的,与硬件没有直接联系,jvm也是java能够跨平台的根本原因。

二、JVM组成部分

在这里插入图片描述


1.Class Loader 类加载器

类加载器的作用是加载类文件到内存,比如编写一个 HelloWord.java 程序,然后通过 javac 编译成 class 文件,那怎么才能加载到内存中被执行呢?Class Loader 承担的就是这个责任,当然,不可能随便建立一个.class 文件就能被加载的,Class Loader 加载的 class 文件是有格式要求。

Class Loader 只管加载,只要符合文件结构就加载,至于说能不能运行,则不是它负责的,那是由 Execution Engine 负责的

2.Execution Engine 执行引擎

执行引擎也叫做解释器 (Interpreter),负责解释命令,提交操作系统执行。

3.Native Interface 本地接口
本地接口的作用是融合不同的编程语言为 Java 所用,

它的初衷是融合 C/C++ 程序,Java 诞生的时候是 C/C++ 横行的时候,要想立足,必须有一个聪明的、睿智的调用 C/C++ 程序,于是就在内存中专门开辟了一块区域处理标记为 native 的代码,

它的具体做法是 Native Method Stack 中登记 native 方法,在 Execution Engine 执行时加载 native libraies。目前该方法使用的是越来越少了,除非是与硬件有关的应用,比如通过 Java 程序驱动打印机,或者 Java 系统管理生产设备,

在企业级应用中已经比较少见,因为现在的异构领域间的通信很发达,比如
可以使用 Socket 通信,也可以使用 Web Service 等等,不多做介绍。

4.Runtime data area 运行数据区

运行数据区是整个 JVM 的重点。

我们所有写的程序都被加载到这里,之后才开始运行,

Java 生态系统如此的繁荣,得益于该区域的优良自治,详细介绍请看
Java面试知识点(五十四)JVM运行时数据区域

5.总结:
整个 JVM 框架由加载器加载文件,然后执行器在内存中处理数据,需要与异构系统交互是可以通过本地接口进行。

发布了147 篇原创文章 · 获赞 835 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/qq_33945246/article/details/102952048