学习笔记
Java基础相关
JVM内存模型及线程空间
动态代理
java并发编程
Java中Future
移动端相关
杂乱整理
HarmonyOS 鸿蒙开发知识
ArkTS中如何自定义组件和复用统一样式
开发工具相关
Git cmd学习整理
Markdown用法大全集
【2023年12月】工作常用
Git如何单独合并某次提交到另一个分支
前端开发相关
Node+TypeScript相关记录
TypeScript 读写 MariaDB
Node TypeScript项目 token生成、管理及拦截校验的实现
TypeScript+Express创建和实现一个服务示例
Express接口处理器抽取注册方式
Express 实现 RESTful API
创建 TypeScript Express 项目,并配置直接用 npm start 运行
TypeScript + Express 实现文件下载接口
export 和 export default的区别
TypeScript+Express 实现用户注册和登录接口
TypeScript 和 JavaScript 中,`===` 和 `==`
CSS中的尺寸大小标准
小程序px和rpx
使用Python快速处理Excel的合并拆分
读书写作相关
一些句子01
李敖语录
罗翔老师的一些经典语句
周易相关知识
周易是对自然描述还是为自然立法
40句落寞诗词,穿透柔魂弱魄
杂玩整理
黑苹果睿频问题
基于纯Linux自己部署Nas构思
Ubuntu换源
Ubuntu挂载tf卡
Ubuntu运行Docker报错
Ubuntu安装运行Docker报错处理
官方镜像安装Docker
Docker 设置root dir 切换数据到其他存储位置
systemctl stop docker 报错
NextCloud安装ffmpeg 显示视频缩略图
Docker源不生效解决方式
Docker源不生效解决方式II——搭建docker-hub镜像
搞定群晖总Docker部署gitea启用ssh协议
MacOS一键安装命令软件列表
群晖ssl证书目录
Android通过ADB命令播放视频
Java基础知识
精选网站
有声主播知识
学习笔记
有声主播入门到进阶
有声主播新手的入门练手内容推荐
DeepSeek分析喜马拉雅旗下 喜播平台 的有声主播培训
录书设备资料1
典故专辑资料整理
0B. 脚本和大纲
01. 柳赠别——灞桥烟雨中的离愁
0A. 前置准备资料
Ai大数据模型
模型整理
使用 DeepSeek 通用公式
学会这8招,让DeepSeek变得超好用!
大数据购物分析选优
Windows和Ubuntu部署DeepSeek性能差距
本地部署 Ollam+DeepSeek 探索爬坑
模型对比测试
AI模型使用心得
小说创作需求说明书
-
+
首页
JVM内存模型及线程空间
### JVM(Java虚拟机)内存模型 JVM内存模型是Java程序在运行时使用的内存结构。JVM将程序所需的内存空间划分为以下几个不同的区域: - #### 堆内存(Heap Memory): 所有类实例和数组都在堆上创建,堆是JVM中最大的一块内存区域,用于存储对象实例。 - #### 方法区(Method Area): 用于存储已加载的类信息、常量、静态变量等。 - #### 栈内存(Stack Memory): 每个线程都有一个独立的栈空间,用于存储方法调用时的局部变量、方法参数等。 - #### 本地方法栈(Native Method Stack): 与虚拟机栈类似,但是它是为本地方法服务的。 - #### 程序计数器(Program Counter Register): 用于存储指向下一条指令的地址,以支持线程间的切换和恢复。 ### 线程空间 线程空间是指每个线程在运行时使用的内存空间。线程空间包含`JVM栈`、`本地方法栈`和`程序计数器`。每个线程都有自己的`JVM栈`和`本地方法栈`,但所有线程共享`方法区`和`堆内存`。 JVM根据需要动态分配堆内存空间,当对象不再被引用时,由垃圾收集器负责回收堆内存。JVM栈和本地方法栈的大小在程序运行前确定,并且在运行时不能动态调整。 - #### JVM栈 线程空间的JVM栈用于存储方法调用时的局部变量、方法参数等,每个方法调用都会在JVM栈上创建一个新的栈帧(Stack Frame),栈帧包含了该方法的信息,包括方法的参数、返回值、局部变量等。当方法调用结束时,其对应的栈帧将从JVM栈中弹出。 - #### 本地方法栈 线程空间的本地方法栈用于支持Java程序调用本地方法,本地方法是使用本地语言编写的代码,如C或C++。JVM执行本地方法时,将其压入本地方法栈中,然后调用本地语言的函数。当本地方法返回时,JVM将其从本地方法栈中弹出。 - #### 程序计数器 线程空间的程序计数器用于记录JVM正在执行的字节码指令地址,以便在线程切换后能够恢复执行。由于每个线程都有自己的程序计数器,因此可以同时执行多个线程,而不会相互干扰。
嘿手大叔
2023年4月18日 19:28
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码