JVM学习笔记-JVM模型

JVM学习笔记

==

标签(空格分隔): jvm


学习笔记全部来自于《深入理解java虚拟机》总结

  • jvm内存示意图

JVM学习笔记-JVM模型

  • 虚拟机栈(Java Virtual Machine Stacks):

    为虚拟机执行java方法(字节码)服务

    1. 局部变量表
    2. 操作数栈
    3. 动态链表
    4. 方法出口
    • 虚拟机栈主要储存各种基本数据类型,对象引用等(由局部变量表实现)
    • 每个方法创建时都会创建一个栈帧(Stack Frame)
    • 每个方法从调用到执行完成 <>栈帧的入栈到出栈

    异常

  1. 如果线程请求的栈深度大于虚拟机所允许的深度,将会跑出StackFlowError(栈溢出)异常
  2. 如果扩展时无法申请到足够内存就会抛出OutOfMemoryError(内存溢出)异常
  • 本地方法栈(Native Method Stack):

    为虚拟机执行Native方法服务

异常与虚拟机栈一样

  • Java堆(Java Heap)线程共享

    存放对象实例
    GC堆

  • 方法区(Method Area)线程共享

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

异常

  1. 方法区无法满足内存分配需求时,将抛出OutOfMemoryError 异常。
  • 运行时常量池(Runtime Constant Pool)

用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。

上一篇:npm使用过程中的一些错误解决办法及npm常用命令和技巧


下一篇:Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程