java虚拟机---内存

时间:2022-12-27 19:03:12

  java虚拟机---内存

  Java虚拟机,即JVM,负责运行java程序,每个java程序都运行在一个具体jvm实例上。Java虚拟机的体系架构分为:类装载子系统、运行时数据区、执行引擎。类装载子系统即负责加载、验证、解析、初始化java类的系统;Java虚拟机在运行一个程序时需要储存很多数据,如类装载信息、创建的实例对象、方法调用的参数、局部变量、中间值等,虚拟机把这些信息都储存在“运行时数据区”里,即这里讲的JVM内存;执行引擎则是以字节码形式的class文件为输入,运行程序输出计算结果。

                    java虚拟机---内存

  

  java虚拟机内存是一个概念性的东西,官方并没有给出具体的实现,知识给出了一个标准或者说是规范,各java虚拟机厂商可以根据此规范设计各自的虚拟机,用户还可以通过指令集设置各部分内存的大小。

       JVM内存包括几个区域:方法区、堆、java栈、PC寄存区、本地方法栈。

  方法区:储存类信息、常量、静态变量、经过编译之后的字节码,所有线程共享

  堆:储存实例对象信息,所有线程共享

  Java栈:方法调用的状态,以栈帧的形式储存方法调用时的参数传递、局部变量、计算中间值等信息、返回地址,每个线程一个

  PC寄存器:指向下一条将被执行的指令,每个线程一个

  本地方法栈:与java栈功能类似,只是java栈为虚拟机提供执行java方法的服务,而本地方法栈为虚拟机提供执行本地方法的服务

                                              java虚拟机---内存