1、jvm实例的结构是什么样的
在Java虚拟机规范中,一个虚拟机实例的行为主要组成部分为:子系统、内存区域、数据类型和指令。
这些组件描述了JVM内部的一个抽象结构。与其说这些组成部分的目的是进行JVM内部结构的一种支配,不如说是提供一种对外部行为的严格定义,该规范定义了这些抽象组成部分的相互作用,以及Java虚拟机执行所需要的行为。
了解jvm内存管理看这里:java内存模型是什么样的
下图描述了JVM实例的一个内部结构,其中主要包括主要的子系统、内存区域。
我们来解读一下这个JVM实例的结构图:
- Java虚拟机有一个类加载器(class loader subsystem)作为JVM的子系统,类加载器针对Class文件进行检测来加载对应的类接口。
- JVM内部有一个执行引擎(exection engine),用来负责代码的解释和执行。
- 当JVM运行程序的时候,它的内存用来存储包括字节码、从类文件中提取出来的一些附加信息、以及程序中实例化的对象、方法参数、返回值、局部变量以及计算的中间结果等很多内容。
- JVM的内存管理分为两部分:每个JVM实例有一个方法区和一个内存堆,这两个区域储存了素有线程的共享数据;每个新的线程启动后,都会被分配自己的PC寄存器(PC registers,程序计数器器)、本地方法栈空间(native method stacks)、栈空间(Java stacks),来储存线程内部的数据。
了解内存分配策略看这里:内存分配有哪些策略
了解jvm是如何管理内存的看这里:jvm是如何管理内存的
时间: 2024-10-24 09:36:20