JAVA虚拟机

运行时数据区
区域名称 创建时期 线程共享 内存分配方式 存放数据 异常情况
PC寄存器   固定 Java虚拟机正在执行的字节码指令地址  
Java虚拟机栈 创建线程时创建 固定或动态 存储局部变量和一些过程的结果 1、如果线程请求分配的栈容量超过了Java虚拟机栈允许的最大栈容量将会出现StackOverflowError
2、如果Java虚拟机栈动态扩展,当无法申请到足够的内存,或者创建线程时没有足够内存去创建虚拟机栈,将会出现OutOfMemoryError 
Java堆 虚拟机启动时创建 固定或动态 类实例或数组对象  如果实际所需的堆超过了自动内存管理系统能提供的最大容量,那 Java 虚拟机将会抛出一个OutOfMemoryError 异常
方法区 虚拟机启动时创建 固定或动态 存储类结构信息 如果方法区的内存空间不能满足内存分配请求,那 Java 虚拟机将抛出一个OutOfMemoryError 异常。
运行时常量池 类和接口被加载到虚拟机时       当创建类或接口的时候,如果构造运行时常量池所需要的内存空间超过了方法区所能提供的最大值,那 Java 虚拟机将会抛出一个 OutOfMemoryError 异常。
本地方法栈 线程创建时分配 固定或动态   1、如果线程请求分配的栈容量超过本地方法栈允许的最大容量时,Java 虚拟机将会抛出一个StackOverflowError 异常。
2、如果本地方法栈可以动态扩展,并且扩展的动作已经尝试过,但是目前无法申请到足够的内存去完成扩展,或者在建立新的线程时没有足够的内存去创建对应的本地方法栈,那 Java 虚拟机将会抛出一个 OutOfMemoryError 异常。
栈帧 方法调用时创建 动态    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值