JVM内存区域

Java内存区域

  1. 方法区
  2. 本地方法栈
  3. 程序计数器

堆:
  1. 一般为内存中最大的一块,用来存放对象实例
  2. 线程共享
  3. GC管理的主要区域,分为新生代和老年带
  4. 堆无法拓展时,抛出OutOfMemoryError
  5. 不需要连续内存(逻辑上连续)

Java虚拟机栈
  1. 线程私有,生命周期与线程相同
  2. 创建栈帧,存储局部变量表等
  3. 线程请求的栈深度大于虚拟机允许的深度时,抛出StackOverflowError
  4. 无法拓展时,抛出OutOfMemoryError

方法区(包含运行时常量池)
  1. 线程共享
  2. 存储已被JVM加载的类信息、常量、静态变量等
  3. 不需要连续内存(逻辑上连续)
  4. 无法满足内存分配需求时,抛出OutOfMemoryError
  5. 包含运行时常量池

本地方法区
  1. 为Native方法服务

2. 可抛出StackOverflowError与OutOfMemoryError

程序计数器
  1. 较小的内存空间
  2. 当前线程所执行的字节码的行号指示器
  3. 线程私有,每个线程都有一个独立的程序计数器
  4. 线程执行Java方法时,记录正在执行的虚拟机字节码指令地址;Native方法时,值为空(Undefine)
  5. JVM规范中唯一没有规定任何OutOfMemoryError情况的区域
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值