当前位置: 首页 > article >正文

jvm核心组件介绍

23cd8ca239ac44f4a875aefa93421988.gif

 

1. 类加载器(ClassLoader):

 

    • 想象它是一个快递员,负责把Java类(.class文件)这个“包裹”从磁盘这个“发货地”送到JVM内部这个“目的地”。类加载器确保每个类只被加载一次,并维护一个类的层级关系。

 

2. 类加载机制:

 

    • 这是类加载器工作的具体流程,包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)等阶段。就像处理一个快递包裹,从接收、检查、打包、路线规划到最终送达的整个过程。

 

3. 运行时数据区(Runtime Data Area):

 

    • 它是JVM内存管理的主要部分,包括方法区(Method Area)、堆(Heap)、Java栈(Java Stack)、本地方法栈(Native Method Stack)和程序计数器(Program Counter Register)。可以把它想象成一个仓库,不同的区域存放着不同类型的数据和指令。

 

4. 方法区(Method Area):

 

    • 存放已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。可以把它比作仓库中的“贵重物品区”,存放着重要的类信息。

 

5. 堆(Heap):

 

    • 是Java对象存放的地方,也是垃圾收集器管理的主要区域。可以把它想象成仓库中的“货物区”,存放着所有Java对象。

 

6. Java栈(Java Stack):

 

    • 每个线程都有一个私有的栈,用于存放线程执行方法时的局部变量表、操作数栈、动态链接、方法出口等信息。可以把它比作线程的“工作区”,每个线程都在这里处理自己的任务。

 

7. 本地方法栈(Native Method Stack):

 

    • 和Java栈类似,但它用于支持native方法的执行。可以把它想象成处理“特殊任务”的“工作区”。

 

8. 程序计数器(Program Counter Register):

 

    • 当前线程所执行的字节码的行号指示器。可以把它比作线程的“指南针”,告诉线程当前应该执行哪一行代码。

 

9. 垃圾收集器(Garbage Collector, GC):

 

    • 负责自动回收不再使用的对象所占用的内存空间。可以把它想象成仓库的“清洁工”,定期清理不再需要的“货物”。

 

10. 执行引擎(Execution Engine):

 

    • 负责执行字节码,包括解释执行(通过解释器)和编译执行(通过即时编译器JIT)两种方式。可以把它比作仓库的“处理器”,负责处理和执行各种指令


http://www.kler.cn/a/411132.html

相关文章:

  • 从Full-Text Search全文检索到RAG检索增强
  • visionpro实践项目(一)
  • 【设计模式】【行为型模式(Behavioral Patterns)】之状态模式(State Pattern)
  • mac 安装node提示 nvm install v14.21.3 failed可能存在问题
  • oracle会话追踪
  • 深度学习day4-模型
  • 手搓人工智能—聚类分析(下)谱系聚类与K-mean聚类
  • E2、UML类图顺序图状态图实训
  • 计算机网络的功能
  • 银行卡 OCR 识别 API 接口的发展前景
  • 解决 java -jar 报错:xxx.jar 中没有主清单属性
  • 物联网智能项目:智能家居系统的设计与实现
  • 旋转磁体产生的场 - 实验视频资源下载
  • 【Python 3.13】新特性解读,重大改进建议升级:JIT编译、免GIL,REPL、错误处理、类型系统等多个方面
  • Win7电脑IP地址查看与变换指南
  • shiny动态生成颜色选择器并将其用于绘图
  • JVM详解:垃圾回收机制
  • uniapp中使用uni-forms实现表单管理,验证表单
  • 机器学习-02HMM模型学习
  • 【计网笔记】网络层
  • 线上+线下≠新零售,6大互通诠释新零售的核心要点-亿发
  • netconf 代码架构
  • 软件测试丨Pytest 参数化与调度执行
  • JVM类加载和垃圾回收算法详解
  • 无人直播的好处
  • 【文档搜索引擎】项目核心思路,模块划分和分词的概念