面试题:JVM 的组织架构

JVM 大致可以划分为四个部门:类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Native Interface) 和 本地库接口(Native Interface)。

    1. 类加载器
      负责从文件系统、网络或其他来源加载 Class 文件,将 Class 文件中的二进制数据读入到内存
    • ① 启动类加载器(Bootstrap Class Loader)

      它是 JVM 的内部 组件,负责加载 Java 核心类库(如java.lang)和其他被系统类加载器所需要的类。启动类加载器是由 JVM 实现提供的,通常使用本地代码来实现。

    • ② 扩展类加载器(Extension Class Loader)

      它是 sun.misc.Launcher$ExtClassLoader 类的实例,负责加载 Java 的扩展类库 (如 java.util、java.net)等。扩展类加载器通常从 java.ext.dirs 系统属性所指定的目录JDK 的扩展目录中加载类。

    • ③ 系统类加载器(System Class Loader)

      也称为应用类加载器(Application Class Loader),它是sun.misc.Launcher$AppClassLoader 类的实例,负责加载应用程序的类 。系统类加载器通常从 CLASSPATH 环境变量所指定的目录JVM 的类路径中加载类。

    • 用户自定义类加载器(User-defined Class Loader)

      这是开发人员根据需要自己实现的类加载器。用户自定义类加载器可以根据特定的加载策略和需求来加载类,例如从特定的网络位置、数据库或其他非传统来源加载类。


参考地址

    1. 运行时数据区
      JVM 在执行 Java 程序时,需要在内存中分配空间来处理各种数据,这些内存区域主要包括方法区、堆、栈、程序计数器和本地方法栈
    1. 执行引擎
      执行引擎是 JVM 的心脏,负责执行字节码 。它包括一个虚拟处理器,还包括即时编译器(JIT Compiler)和垃圾回收器(Garbage Collector)。
相关推荐
Curvatureflight11 分钟前
【架构实战】生产级大模型 API 接入指南:流式响应(Streaming)异常处理与监控闭环
python·架构
这是谁的博客?25 分钟前
微服务架构设计模式深度解析:从拆分策略到容灾机制
微服务·设计模式·云原生·架构·架构设计·后端开发·分布式系统
oo哦哦2 小时前
企业级矩阵管理中台:从“人海战术“到“AI智能增长“的架构演进与实践解析
人工智能·矩阵·架构·轻量化中台
heimeiyingwang3 小时前
【架构实战】分库分表ShardingSphere:突破数据库瓶颈
架构
梦梦代码精3 小时前
以前比功能,现在比“不崩溃”——LikeShop如何用工程化架构终结商城维护噩梦
架构·开源·代码规范
该昵称用户已存在3 小时前
双碳背景下的能源数据变现:MyEMS 开源架构的资产化设计思路
架构·开源·能源
百珏3 小时前
海量人群包存储优化:基于 RoaringBitmap 交换格式与 Redis 分片 Bitmap 的实践
java·后端·架构
还有多久拿退休金3 小时前
我在自家页面嵌了个 iframe,结果对方说"你不配"——跨域和 CSP 的那些坑
前端·架构
heimeiyingwang3 小时前
【架构实战】安全性设计:让系统固若金汤
架构
亚空间仓鼠4 小时前
Docker容器化高可用架构部署方案(十五)
android·redis·docker·架构·sentinel