说一下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函数调用。

相关推荐
程序媛徐师姐1 天前
Java基于SpringBoot的智能城市管理平台,附源码+文档说明
java·spring boot·java springboot·智能城市管理平台·java智能城市管理平台·java智能城市管理·智能城市管理
tryxr1 天前
Java抽象类特点、使用方式和应用场景
java·开发语言·向上转型·抽象类·向下转型
潲爺1 天前
Java-多线程
java·笔记·学习
李慕婉学姐1 天前
【开题答辩过程】以《婴幼儿辅食健康监测与反馈系统》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·spring boot
派大鑫wink1 天前
Stream 流:简化集合操作的利器
java·开发语言
lkbhua莱克瓦241 天前
基础-SQL-DQL
java·开发语言·数据库·笔记·mysql·dql
TT哇1 天前
【RabbitMQ】@Autowired private RabbitTemplate rabbitTemplate;
java·分布式·rabbitmq
李慕婉学姐1 天前
【开题答辩过程】以《智慧校园创新互助小程序的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·spring boot·小程序
悟能不能悟1 天前
JAVA 对象转为二级制流,再转化为base64
java·开发语言
潲爺1 天前
Java-IO笔记
java·笔记·学习