说一下JVM的主要组成部分及其作用?

两个子系统:

  • 类加载器:根据给定的全限定名类名(如:java.lang.Object)来装载class文件到Runtime data area中的method area

  • 执行引擎:执行classes中的指令

两个组件:

  • 运行时数据区:这就是我们常说的JVM的内存

  • 本地接口:与native libraries交互,是其它编程语言交互的接口

运作机制

首先通过编译器把 Java 代码转换成字节码,类加载器(ClassLoader)再把字节码加载到内存中,将其放在运行时数据区(Runtime data area)的方法区内。

而字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎(Execution Engine),将字节码翻译成底层系统指令,再交由 CPU 去执行。

同时,java代码中,可以调用其他语言的本地库接口(Native Interface)来,进行一些系统调用或者c函数调用。

相关推荐
kyriewen2 分钟前
手写 Promise.all、race、any:不到 30 行代码,解决并发异步的所有姿势
前端·javascript·面试
摇滚侠1 小时前
SpringMVC 入门到实战 文件上传 75-77
java·后端·spring·maven·intellij-idea
GIS数据转换器1 小时前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
华如锦2 小时前
面了很多 Java转AI Agent方向,一些面试题总结
java·开发语言·人工智能·python·ai
睡不醒男孩0308232 小时前
CLup 6.x 版本中针对StarRocks 存算一体集群的完整操作手册
java·服务器·网络·clup
程序员黑豆2 小时前
Java中怎么实现字符串拼接呢【AI全栈开发】
java
java1234_小锋3 小时前
LangChain4j 开发Java Agent智能体- 多模态支持
java·开发语言·langchain4j
艳阳天_.3 小时前
星瀚弹框页面实现
java·前端·python
小熊美家熊猫系统4 小时前
电子合同技术实现与合规实践
java·开发语言·分布式