美文网首页
2. JVM 运行时数据区域

2. JVM 运行时数据区域

作者: 42cc8919e42f | 来源:发表于2019-03-08 19:03 被阅读0次

    1. 程序计数器

    • 可以看作是当前线程所执行的字节码的行号指示器
    • 分支、循环、跳转、异常处理、线程恢复等都需要依赖该计数器
    • 每个线程都有一个独立的、互不干扰的计数器

    2. 虚拟机栈

    • 线程私有,生命周期与线程相同
    • 每一个方法调用直至完成,对应着一个栈帧入栈到出栈
    • 两个关键异常
      • 当前虚拟机使用固定长度的虚拟机栈时,若请求的栈深度大于虚拟机所允许的深度会抛出StackOverFlowError
      • 当前虚拟机使用动态长度的虚拟机栈时,若扩展时无法申请到足够的内存会抛出OutOfMemoryError

    3. 本地方法栈

    类似虚拟机栈

    4. Java 堆

    • 本质就是存放对象的地方
    • 当堆无法扩展以完成实例的分配时,就会抛出OutOfMemoryError

    5. 方法区

    • 仅在 HotSpot 虚拟机中,方法区是以永久代的形式实现的

    相关文章

      网友评论

          本文标题:2. JVM 运行时数据区域

          本文链接:https://www.haomeiwen.com/subject/nikouqtx.html