JVM虚拟机
2024-05-06 21:47:36 0 举报
JVM虚拟机
作者其他创作
大纲/内容
执行引擎Execution Engine
本地库接口Native Interface
虚拟机栈VM Stack
1)虚拟机栈描述的是Java方法执行的线程内存模型:每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧[插图](Stack Frame)用于存储局部变量表、操作数栈、动态连接、方法出口等信息。2)每一个方法被调用直至执行完毕的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
线程共享的数据区
本地方法栈(Native Method Stacks)与虚拟机栈所发挥的作用是非常相似的,其区别只是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的本地(Native)方法服务
本地方法类库Native Libraries
类加载器ClassLoader
1)程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器2)如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址3)如果正在执行的是本地(Native)方法,这个计数器值则应为空(Undefined)。4)此内存区域是唯一一个在《Java虚拟机规范》中没有规定任何OutOfMemoryError情况的区域。
Java堆/Heap(用于存储对象实例,所有线程共享)
程序计数器Program Counter Register
运行时数据区(内存分区)Runtime Data Area
1)Java堆(Java Heap)是虚拟机所管理的内存中最大的一块2)Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,Java世界里“几乎”所有的对象实例都在这里分配内存
方法区/Method Area
本地方法栈Native Method Stack
字节码文件ClassFiles
线程隔离/独享的数据区
0 条评论
下一页