【JVM】JVM的内存区域划分

JVM的内存区域划分


程序中创建的所有对象都保存在堆中

Java虚拟机栈

Java虚拟机栈的生命周期和线程相同,描述的是Java方法执行的内存模型,每个方法在执行的时候都会同时创建一个栈帧用于存储局部变量表,操作栈,动态链接,方法返回地址等信息

递归存放着方法的调用关系

程序计数器

用来记录当前线程执行的行号,记录的当前线程执行的下一条指令的内存地址

如果当前线程正在执行的是一个Java方法,这个计数器记录是正在执行的虚拟机字节码指令的地址如果正在执行的是一个native方法,这个计数器值为空

程序计数器的内存区域是唯一一个在jvm中没有规定任何oom情况的区域

方法区

用来存储虚拟机加载的类信息,常量,静态变量,即时编译器后的代码等数据
JDK7时此区域叫做永久代,JDK8中叫元空间

存放类(.class文件)被加载到内存后放的地方 ,类对象,类方法的内容 static修饰的

运行时常量池

运行时常量池是方法的一部分,存放字面量和符号引用

字面量:字符串(JDK8之后 移动到堆中) final常量 基本数据类型的值

符号引用: 类和结构的完全限定名,字段的名称和描述符,方法的名称和描述符

相关推荐
CodeCraft Studio12 分钟前
Excel处理控件Spire.XLS系列教程:Java设置Excel活动工作表或活动单元格
java·python·excel
瓯雅爱分享36 分钟前
任务管理系统,Java+Vue,含源码与文档,科学规划任务节点,全程督办保障项目落地提效
java·mysql·vue·软件工程·源代码管理
chxii37 分钟前
2.3java运算符
java
余辉zmh1 小时前
【Linux系统篇】:信号的生命周期---从触发到保存与捕捉的底层逻辑
android·java·linux
小布不吃竹1 小时前
Maven的概念与初识Maven
java·maven
中东大鹅1 小时前
Maven进阶
java·maven
serene941 小时前
IntelliJ IDEA 2025.2 和 JetBrains Rider 2025.1 恢复git commit为模态窗口
java·git·intellij-idea
南客先生1 小时前
5G融合消息PaaS项目深度解析 - Java架构师面试实战
java·微服务·高并发·paas·分布式系统·缓存策略·5g融合消息
幽络源小助理1 小时前
SpringBoot物资管理系统 | JavaWeb项目设计与实现
java·springboot·javaweb
掘金詹姆斯1 小时前
LangChain4j—人工智能服务 AIService(三)
java·人工智能