JVM虚拟机(理解答题)
问:说一下JVM的主要组成部分及其作用?
答:JVM的组成主要分为四部分部分:类装载器、执行引擎、本地方法区、运行时数据区。
类装载器:编译java文件成class文件到运行时数据区。
**执行引擎:**执行classes中的指令。
**本地接口:**与jvm无关,存在于本地系统中,底层由native交互。
JVM运行时数据:
1、程序计数器:当前线程所执行的字节码的行号指示器,字节码解析器的工作改变计数器的值,用于执行指令、分支、循环、跳转、异常处理、线程恢复等基础功能。
2、java虚拟机栈:用于存储局部变量表,操作数栈、动态链接、方法出口等信息。
3、本地方法栈:和虚拟机栈的作用基本一致,但是本地栈是为虚拟机调用Native方法服务的。
4、JAVA堆:java虚拟机中内存最大的一块,是被所有线程所共享的,几乎所有的对象实例都在这里分配内存。
5、方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据,线程共享。