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

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.lryc.cn/news/492105.html

相关文章:

  • uname -m(machine) 命令用于显示当前系统的机器硬件架构(Unix Name)
  • Pgsql:json字段查询与更新
  • 类的加载机制
  • 基于vite创建的react18项目的单元测试
  • fiddler抓包工具与requests库构建自动化报告
  • Docker login 报证书存储错误的解决办法
  • 【自动化Selenium】Python 网页自动化测试脚本(上)
  • 什么是MyBatis?
  • TortoiseGit 将本地已有仓库推送到远程
  • 腾讯云OCR车牌识别实践:从图片上传到车牌识别
  • TailwindCss 总结
  • Java与C#
  • leetcode:222完全二叉树的节点个数
  • [STM32]从零开始的STM32 FreeRTOS移植教程
  • java——Tomcat连接池配置NIO、BIO、APR
  • 跨域相关的一些问题 ✅
  • RPC学习
  • coe文件转mif(c语言)
  • 【leetcode】动态规划
  • 介绍一下atoi(arr);(c基础)
  • docker入门学习笔记
  • 使用Python和Pybind11调用C++程序(CMake编译)
  • tableau-制作30个图表
  • 2024APMCM亚太杯数学建模C题【宠物行业】原创论文分享
  • C语言解析命令行参数
  • 推荐一款龙迅HDMI2.0转LVDS芯片 LT6211UX LT6211UXC
  • libmodbus 源码学习笔记
  • 通用网络安全设备之【防火墙】
  • Vue.js基础——贼简单易懂!!(响应式 ref 和 reactive、v-on、v-show 和 v-if、v-for、v-bind)
  • Mybatis 执行存储过程,获取输出参数的值