本篇文章属于“扫盲篇”,由于Java小白对JVM原理与JVM架构还不太熟悉,下面就跟随小编一起来了解一下相关内容吧!
JVM是什么?
JVM,中文名是Java虚拟机,正如它的名字,是一个虚拟机器,来模拟通用的物理机。 JVM是一个标准,一套规范,规定了.class文件在其内部运行的相关标准和规范。及其相关的内部构成。比如:所有的JVM都是基于栈结构的运行方式。那么不符合这种要求的,不算是JVM,如Android中所使用的Dalvik虚拟机就不能称作是JAVA虚拟机,因为它是基于寄存器。
JVM的体系结构?
1.类加载器子系统(Class Loader Subsystem)
Java的动态类加载功能由类加载器子系统处理。它在运行时,而不是编译时首次引用类的时候加载、链接、并初始化类文件。
2.运行时数据区(Runtime Data Area)
方法区——所有的类级别数据将存储在这里,包括静态变量。每个JVM只有一个方法区,并且它是一个共享资源。
堆区域——所有对象及其对应的实例变量和数组将存储在这里。每个JVM也有一个堆区域。由于方法和堆区域共享多个线程的内存,因此所存储的数据非线程安全。
堆栈区——对于每个线程,将创建一个单独的运行时栈。对于每个方法调用,将在堆栈存储器中产生一个条目,称为堆栈帧。所有局部变量将在堆栈内存中创建。堆栈区域是线程安全的,因为它不是共享资源。
PC寄存器——每个线程都有单独的PC寄存器,用于保存当前执行指令的地址,一旦指令执行,PC寄存器将更新到下一条指令。
本地方法堆栈——本地方法堆栈保存本地方法信息。对于每个线程,将创建一个单独的本地方法堆栈。
3.执行引擎(Execution Engine)
分配给运行时数据区的字节码将由执行引擎执行。执行引擎读取字节码并逐个执行它。
以上就是小编为大家整理发布的“浅析JVM原理与JVM架构”一文,更多相关内容尽在开课吧广场-Java频道。
