Java虚拟机的内存区域——《深入理解Java虚拟机》学习笔记(一)

Sun HotSpot

内存区域

用途

线程

异常

程序计数器

Program Counter Register

当前线程所执行字节码的行号指示器

线程私有

不会抛出OOM

Java虚拟机栈

Java Virtual Machine Stacks

描述方法执行的内存模型:每个方法在执行时创建一个栈帧(Stack Frame)(方法运行时的基础数据结构),用来存储局部变量表、操作数栈、动态链接、方法出口等信息。

Java方法服务

线程私有

如果线程请求的栈深度大于虚拟机所允许的深度,抛出SOF

如果虚拟机栈可以动态扩展,当扩展时无法申请到足够的内存,抛出OOM

本地方法栈

Native Method Stack

Native方法服务

线程私有

Java

Java Heap

存放对象实例

线程共享

如果堆中没有内存完成实例分配,并且堆也无法再拓展时,抛出OOM

方法区

Method Area

存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

线程共享

当方法区无法满足内存分配需求时抛出OOM

运行时常量池

Runtime Constant Pool

方法区的一部分,用于存放编译期生成的各种字面和符号引用

线程共享

当常量池无法再申请到内存时会抛出OOM



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值