说一下JVM模型,有哪些区?分别干什么?
类加载器,通过加载链接初始化三个步骤对类进行初始化,
执行引擎,java字节码的执行,
运行时数据区,包括,
线程共享的,
方法区,
堆,
线程独占的,
虚拟机栈,
本地方法栈,
程序计数器,
方法区
用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,
堆,我们实例化的对象放在堆中,垃圾收集器管理的主要区域。
虚拟机栈,
用于
储存局部变量表、操作数栈、动态链接,方法出口等
,
本地方法栈与虚拟机栈发挥的作用非常相似,
其区别不过是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的Native方法服务,
程序计数器用来执行指令代码。