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

Java运行时数据区

JVM主要流程包括三部分:

  1. 首先是 ClassLoard 类加载器,加载数据源文件到jvm当中
  2. 然后将加载好的数据存放在运行时数据区
  3. 最后由引擎进行解释和编译的工作

1.Java 内存区域:

运行时数据区

1.1 程序计数器

程序计数器(Program Counter Register)是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。

字节码解释器通过改变程序计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要该计数器来完成。

每个线程都拥有一个独立的程序计数器,各个线程之间的计数器互不影响,独立存储。

1.2 虚拟机栈

虚拟机栈(Java Virtual Machine Stack)也是线程私有,它描述的是 Java 方法执行的线程内存模型:每个方法被执行的时候,Java 虚拟机都会同步创建一个栈帧,用于存储局部变量表、操作数栈、动态连接、方法出口等信息。

方法从调用到结束就对应着一个栈帧从入栈到出栈的过程。在《Java 虚拟机规范》中,对该内存区域规定了两类异常:

  • 如果线程请求的栈深度大于虚拟机所允许的栈深度,将抛出 StackOverflowError 异常;
  • 如果 Java 虚拟机栈的容量允许动态扩展,当栈扩展时如果无法申请到足够的内存会抛出 OutOfMemoryError 异常。
http://www.lryc.cn/news/534126.html

相关文章:

  • 【03】 区块链分布式网络
  • 【SQL server】关于SQL server彻底的卸载删除。
  • 【含文档+PPT+源码】基于微信小程序的校园志愿者管理系统的设计与实现
  • Docker入门(Windows)
  • 深度求索(DeepSeek)的AI革命:NLP、CV与智能应用的技术跃迁
  • Mac本地体验LM studio
  • Spring Boot 线程池自定义拒绝策略:解决任务堆积与丢失问题
  • 解锁摄影潜能:全面解析相机镜头的选择与使用逻辑
  • 【Unity】从父对象中获取子对象组件的方式
  • 第六届MathorCup高校数学建模挑战赛-A题:淡水养殖池塘水华发生及池水自净化研究
  • webpack【初体验】使用 webpack 打包一个程序
  • <论文>DeepSeek-R1:通过强化学习激励大语言模型的推理能力(深度思考)
  • 公司配置内网穿透方法笔记
  • python爬虫--简单登录
  • 人工智能浪潮下脑力劳动的变革与重塑:挑战、机遇与应对策略
  • ESP32-S3驱动步进电机以及梯形加减速库调用
  • 【CubeMX+STM32】SD卡 文件系统读写 FatFs+SDIO+DMA
  • Kotlin 2.1.0 入门教程(十)if、when
  • AJAX项目——数据管理平台
  • 华为云搭建微信小程序商城后台
  • 5、大模型的记忆与缓存
  • Windows下AMD显卡在本地运行大语言模型(deepseek-r1)
  • 代码随想录day09
  • Racecar Gym 总结
  • 【C++高并发服务器WebServer】-15:poll、epoll详解及实现
  • Visual Studio 2022 中使用 Google Test
  • Office/WPS接入DeepSeek等多个AI工具,开启办公新模式!
  • Meta AI 最近推出了一款全新的机器学习框架ParetoQ,专门用于大型语言模型的4-bit 以下量化
  • 操作系统—进程与线程
  • 团队:前端开发工期参考 / 防止工期不足、过足、工期打架