1.JVM由那些部分组成,运行流程是什么?
在JVM中共有四大部分,分别是
- 类加载器
- 运行时数据区
- 执行引擎
- 本地库接口
它们的运行流程是:
- 类加载器把Java代码转换为字节码
- 运行时数据区把字节码加载到内存中,而字节码文件只是JVM的一套指令集规范,并不能直接交给底层系统去执行,而是由执行引擎运行
- 执行引擎将字节码翻译为底层系统指令,再交由CPU去执行,此时需要调用其他语言的本地库接口来实现整个程序的功能。
2.JVM运行时数据区(内存结构)
线程私有区:
(1)虚拟机栈:每次调用方法都会在虚拟机栈中产生一个栈帧,每个栈帧中都有方法的参数、局部变量、方法出口等信息,方法执行完毕后释放栈帧
(2)本地方法栈:为native修饰的本地方法提供的空间
(3)程序计数器:保存指令执行的地址,方便线程切回