JVM内存划分

JVM内存管理分为两部分

  1. 内存分配
  2. 内存回收

简单介绍java程序执行流程

在这里插入图片描述
首先Java源代码文件会被java编译器编译为字节码文件,然后由jvm中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行.在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间一般被称作为Runtime Data Area(运行时数据区),也就是我们常说的JVM内存


JVM内存划分

JVM内存通常分为这几个部分

  1. PC寄存器
  2. java栈
  3. 本地方法栈
  4. 方法区

Java堆和方法区是所有线程共享的

  • Java堆:用于存储Java对象
  • 方法区:用于存储类结构信息,class文件加载进JVM时会被解析成JVM识别的几个部分分别存储在不同的数据结构中:常量池、域、方法数据、方法体、构造函数,包括类中的方法、实例初始化、接口初始化等。

Java栈和PC寄存器是线程私有的,每个执行引擎启动时都会创建自己的Java栈和PC寄存器

  • Java栈:和线程相关,线程创建的时候,jvm都会为他分配一个对应的Java栈,用于存储方法参数,局部变量,方法返回值还有运算中间结果
  • PC寄存器:用于记录下一条要执行的字节码指令地址和被中断地址
  • 本地方法栈:是为JVM运行本地方法准备的空间,类似于java栈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值