JVM教程-3-运行时数据区概述及线程

JVM的运行时数据区之运行时数据区概述 JVM的运行时数据区之运行时数据区概述 堆、方法区(元空间) 主要用来存放数据是线程共享的。 程序计数器、本地方法栈、虚拟机栈是运行程序的,是线程私有的。 JVM的运行时数据区,不同虚拟机实现可能略微有所不同,但都会遵从java虚拟机规范,java 8 虚拟机规范规定,java虚拟机所管理的内存将会包括一下几个运行时数据区域: 1、程序计数器 (Program Counter Register) 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看 作是当前线程所执 阅读详情

前言

转载:https://www.bilibili.com/video/BV1PJ411n7xZ
参考:https://gitee.com/moxi159753/LearningNotes/tree/master/JVM
在这里插入图片描述
当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区
在这里插入图片描述

内存

内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。

  • 我们通过磁盘或者网络IO得到的数据,都需要先加载到内存中,然后CPU从内存中获取数据进行读取,也就是说内存充当了CPU和磁盘之间的桥梁

运行时数据区的详细图

在这里插入图片描述

在这里插入图片描述
Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁。
*灰色的为单独线程私有的,红色的为多个线程共享的。即:

  • 每个线程:独立包括程序计数器、栈、本地栈。
  • 线程间共享:堆、堆外内存(永久代或元空间、代码缓存)*

线程

线程是一个程序里的运行单元。JVM允许一个应用有多个线程并行的执行。 在Hotspot JVM里,每个线程都与操作系统的本地线程直接映射。

  • 当一个Java线程准备好执行以后,此时一个操作系统的本地线程也同时创建。Java线程执行终止后,本地线程也会回收。

操作系统负责所有线程的安排调度到任何一个可用的CPU上。一旦本地线程初始化成功,它就会调用Java线程中的run()方法。

灵魂画图

在这里插入图片描述

第三章:缘尽-运行时数据区概述及线程 文章目录第 3 章 运行时数据区概述及线程1、前言2、运行时数据区结构2.1、运行时数据区与内存2.2、线程的内存空间3、线程3.1、JVM 线程3.2、JVM 系统线程 第 3 章 运行时数据区概述及线程 1、前言 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区 也就是大厨做 阅读详情

相关推荐

03 运行时数据区概述及线程.pptx

03 JVM 运行时数据区概述及线程的 PPT 重绘。讲述 Java 虚拟机 运行时数据区所处位置,结构划分,以及各个区域与线程的关系。

三、运行时数据区域概述

一、运行时数据区 1、概述 运行时数据区:它是在类加载完成后的阶段 当我们通过前面的:类的加载 -> 验证 -> 准备 -> 解析 -> 初始化,这几个阶段完成后,就会用到执行引擎对类进行使用,同时执行引擎将会使用到运行时数据区 2、运行时数据区完整图 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机

余笙的博客 610

从ATE到ATPG:基于Scan Chain的芯片制造缺陷定位实战解析

本文深入解析了从ATE到ATPG的芯片制造缺陷定位实战技术,重点介绍了Scan Chain的工作原理、异步复位触发器处理技巧以及Design Compiler中的DFT实现方法。通过实际案例展示了如何利用ATE测试数据和ATPG工具进行精确的缺陷定位,并分享了提升测试覆盖率和优化测试成本的专业技巧,为芯片测试工程师提供了宝贵的实战经验。

weixin_42527160的博客 379

谈谈对运行时数据区的理解?

VM中的内存主要划分为5个区域,即方法区,堆内存,虚拟机栈,本地方法栈以及程序计数器。 方法区:它用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码等(存储的数据一般持久性比较强)数据。 堆内存:在虚拟机启动时创建,存放对象实例。Java 堆是垃圾收集器管理的主要区域,因此很多时候也被称做“GC”堆(Garbage Collected Heap)。从内存回收的角度看,由于现在收集器基本都采用分代收集算法,所以 Java 堆中还可以细分为:新生代和老年代。 虚拟机栈:为虚拟机执行J

徐明晓的博客 676

告别OFDM卡顿:用MATLAB手把手仿真AFDM波形,搞定高铁、无人机通信的时变信道难题

本文详细介绍了如何使用MATLAB仿真AFDM波形,解决高铁和无人机通信中的时变信道难题。通过仿射变换技术,AFDM在多普勒频移严重的场景下表现优异,显著提升通信质量。文章包含参数配置、波形生成、性能对比等实战内容,适合通信工程师和研究人员参考。

weixin_27014595的博客 318

figma MCP + cursor如何将设计稿生成前端页面

Figma MCP配置与代码生成指南 本文详细介绍了如何在Cursor中配置Figma MCP(多上下文处理器)的完整流程:从获取Figma API密钥、设置MCP服务器配置,到添加代码生成规则。关键步骤包括生成Figm a个人访问令牌、配置cursor settings文件、启用MCP服务,以及设置代码规则(包含TypeScript/Vue技术栈规范、BEM命名规则等)。最后提供了将Figma设计稿转化为Vue页面的prompt模板,涵盖文件结构、图片处理、样式规范等具体要求,确保生成代码与设计稿高度一致

weixin_45644355的博客 2905

运行时数据区(Runtime Data Area)

运行时数据区(Runtime Data Area)

ChineseSoftware的博客 1137

Prism 入门02,区域介绍

什么是区域(Region)?区域,在Prism 框架中,区域是模块化的核心的功能之一,其主要作用是降低应用程序和模块之间的耦合度。使用方式:在应用程序的界面中,划分出某块区域,并为这个区域定义一个唯一的区域名称。那么通过这个区域名称,应用程序就可以找到指定的区域。并为这个区域动态放置一些容器或控件,从而呈现在界面中。

build2024 1125

【JVM篇】什么是运行时数据区

运行时数据区指的是jvm所管理的内存区域,其中分为两大类线程共享:方法区,堆线程不共享:程序计数器,栈(本地方法栈,虚拟机栈)方法区:存放每一个加载的类的基础信息,运行时常量池,字符串常量池堆:存放创建出来的对象本地方法栈和虚拟机栈都存放了线程中执行方法时需要使用的基础数据。程序计数器存放了当前线程执行的字节码指令在内存中的地址。直接内存主要是NIO使用,有操作系统直接管理,不属于JVM内存。

小吉妙妙屋 1234

强化学习:从经典强化学习理解强化学习

1. 背景介绍 强化学习(Reinforcement Learning,RL)作为机器学习领域的重要分支,近年来取得了长足的进步。其核心思想是让智能体通过与环境的交互学习最优策略,从而最大化累积奖励。不同于监督学习和非监督学习,强化学习无需预先标注数据,而是通过试错的方式逐步学习,具有更强的适应性和泛化能力。

AI架构师小马 1799

揭秘AI人工智能中Stable Diffusion的模型微调技巧

Stable Diffusion作为一种强大的文本到图像生成模型,在艺术创作、设计、娱乐等多个领域展现出了巨大的应用潜力。然而,其默认的模型输出可能无法满足特定用户或特定场景的个性化需求。本文章的目的在于深入揭秘Stable Diffusion的模型微调技巧,让读者能够根据自己的需求对模型进行定制化调整,生成符合特定风格、主题或要求的图像。范围涵盖了从基础概念到实际操作,从理论原理到项目实战的全方位内容,旨在为读者提供一个系统且深入的学习指南。

大模型应用工坊 948

运行时数据区

运行时数据区主要分为五部分, 第一部分:程序计数器,可以看做是当前线程所执行字节码的行号知识器,线程私有; 第二部分:java虚拟机栈,描述的是java方法执行的线程模型,每个方法被执行时都会同步创建一个栈帧,用于存储局部变量表、动态连接、方法出口、操作数栈等信息。其中局部变量表用于存储编译期已知的基本数据类型、引用类型(reference类型,并不代表对象自身,可能是一个指向该对象起始内存地址的引用指针,也可能是一个指向该对象的句柄或其他和此对象相关的位置)和retrunAddress类型,...

the_same_dream的博客 884

STM32F407上优化CAN总线通信(500kbps速率,多终端系统)需要从硬件设计、软件配置和实时性能三个方面进行综合优化

STM32F407上优化CAN总线通信(500kbps速率,多终端系统)需要从硬件设计、软件配置和实时性能三个方面进行综合优化

a_zxswer的博客 381

尚硅谷2020最新版宋红康JVM教程-3-运行时数据区概述及线程

运行时数据区 文章目录运行时数据区概述 概述 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略保证了JVM的高效稳定运行。不同的JJVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。 JVM内存结构简图: JVM内存结构详细图: ...

m0_49760452的博客 748

【产品】 产品设计:ID设计和MD设计详解

1、ID(Industry Design)工业设计 包含外观、材质、手感、颜色配搭,主要界面的实现与及色彩等方面的设计。 2、MD(Mechanical Design)结构设计 以手机为例: 前壳、后壳、手机的摄像镜头位置的选择、固定的方式、电池如何连接和手机的厚薄程度等。 如果是滑盖手机,如何让手机滑上去,怎样实现自动往上弹,SIM卡怎样插和拔的安排,这些都是手机结构设计的范畴。 繁...

产品线负责人 3万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JVM运行时数据区——运行时数据区及线程概述

JVM通常会根据运行环境和代码的特性动态地选择解释模式或编译模式。在程序启动时,JVM会使用解释模式来快速启动,然后根据代码的热点(HotSpot)来判断是否进行即时编译

胡晗靓的Java学习博客 702

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

3. JVM-运行时数据区概述及线程

JVM-运行时数据区概述及线程

Android系统优化 3310

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

第三章 - 运行时数据区概述及线程

文章目录1.前言2.运行时数据区结构2.1 运行时数据区与内存2.2 线程的内存空间3.线程3.1 JVM线程3.2 JVM系统线程 1.前言 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们的运行时数据区 比如大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据

JavaAlenboy 3538

第3章 运行时数据区概述及线程

第3章 运行时数据区概述及线程

感谢所有乐于奉献的人,在此不一一具名 766

第 3 章 运行时数据区概述及线程

第 3 章 运行时数据区概述及线程 1、前言 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区 也就是大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据区。而厨师可以类比于执行引擎,将通过准备的东西进行制作成精美的菜品 2、运行时数据区结构 2.1、运行时数据

Oneby的博客 1509

运行时数据区概述及线程

运行时数据区概述及线程 运行时数据区图: 运行时数据区在整个jvm中扮演的角色图解: 内存是非常重要的系统资源,是硬盘和cPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。 Java虚拟机定义了若千种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而

水巷石子的博客 3275

JVM-运行时数据区

JVM的运行时数据区是Java程序运行的基础,主要分为线程私有和线程共享区域。线程私有区域包括程序计数器、虚拟机栈和本地方法栈,分别用于存储指令地址、方法调用信息和本地方法调用信息。线程共享区域包括堆和方法区(元空间),堆用于存储对象和数组,方法区存储类的元数据信息。JDK 1.8之后,方法区从堆中移出,改用本地内存实现。运行时数据区的设计确保了多线程环境下的安全性和高效性,堆的分代收集机制和逃逸分析技术进一步优化了内存管理。

weixin_74141526的博客 1476

【JVM】三、运行时数据区概述及线程

大家好,我是被白菜拱的猪。 一个热爱学习废寝忘食头悬梁锥刺股,痴迷于girl的潇洒从容淡然coding handsome boy。 假如你喜欢我的文字,欢迎关注公众号“放开这颗白菜让我来” 文章目录03-运行时数据区概述及线程一、概述二、线程 03-运行时数据区概述及线程 一、概述 执行引擎执行都会用到运行时数据区 就像厨师做饭,刀具调料就是运行时数据区,厨师就是执行引擎,做完饭还要清理桌面进行回收。 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM

放开这颗白菜让我来 184

【JVM】3、运行时数据区概述及线程

文章目录1 运行时数据区内部结构运行时数据区与内存2 JVM中的线程说明JVM系统线程 1 运行时数据区内部结构 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们的运行时数据区 运行时数据区与内存 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的

小李子还挺酸的博客 663
上一篇: JVM教程-2-类加载子系统
下一篇: JVM教程-4-程序计数器
zgcadmin
博客等级 码龄9年 174粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值