JVM内存区域

程序计数器
程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的 字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。
Java 虚拟机栈
与程序计数器一样, Java 虚拟机栈(Java Virtual Machine Stack)也是 线程私有 的,它的生命周期 与线程相同。虚拟机栈描述的是Java 方法执行的线程内存模型:每个方法被执行的时候, Java 虚拟机都 会同步创建一个栈帧 (Stack Frame)用于存储局部变量表、操作数栈、动态连接、方法出口等信 息。每一个方法被调用直至执行完毕的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
本地方法栈
本地方法栈( Native Method Stacks )与虚拟机栈所发挥的作用是非常相似的,其区别只是虚拟机
栈为虚拟机执行 Java 方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的本地( Native ) 方法服务。
Java
Java 堆是 被所有线程共享的一块内存区域 ,在虚拟机启动时创建。此内存区域的唯一目的就是 存放对象实例 ,Java 世界里 “几乎”所有的对象实例都在这里分配内存
方法区
方法区( Method Area )与 Java 堆一样, 是各个线程共享的内存区域 ,它用于存储已被虚拟机加载
的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据。
运行时常量池
运行时常量池( Runtime Constant Pool )是方法区的一部分。 Class 文件中除了有类的版本、字
段、方法、接口等描述信息外,还有一项信息是常量池表( Constant Pool Table ),用于存放编译期生成的各种字面量与符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值