当前位置:首页 > 虚拟机 > 正文

java虚拟机是一个解释器吗


一、什么是java虚拟机,简述其工作机制Java虚拟机位于机器和编译器之间,为任何平台上的编译器提供通用接口。Java源程序经过编译器编译后成为字节码。字节码由虚拟机解释并执行。虚拟机将每个要执行的字节码发送给解释器,解释器将其翻译为特定机器上的机器。代码,然后在特定机器上运行它。Java虚拟机的主要任务是加载类文件并执行其中包含的字节码。Java虚拟机包含一个类加载器,它可以从程序和API加载类文件。字节码由执行引擎执行。Java虚拟机结构类加载器体系结构是Java虚拟机在网络安全性和移动性中发挥重要作用的一方面。图中所示的类加载器可以包含多个Java应用程序的子系统,程序可以在运行时决定应该安装哪些类,并将不同类加载器加载的类存储在不同的命名空间中。执行引擎是Java虚拟机的核心。其行为由指令集决定。它的主要功能是解释字节码(即执行编译后的Java程序的类文件)。非常不一样。软件实现的虚拟机执行引擎分为一次性解释字节码、即时编译器和自适应优化器。由硬件芯片组成的虚拟机使用本地方法执行Java字节码,其执行引擎嵌入在芯片中。Java虚拟机相当于一个堆栈计算机。它在指令之间传输信息时不使用任何物理寄存器,而是使用堆栈帧来表示方法状态、字节码操作对象、方法参数空间和局部变量空间。它的“程序计数器”是一个伪寄存器,它是指向当前执行指令的字节码数组的指针。Java实现方法Java有两种实现方法:Java方法和本机方法。Java方法用Java语言编写,编译为字节码,并存储在类文件中。本机方法用其他语言(例如C、C++或汇编语言)编写,编译成处理器相关的机器代码,并存储在动态链接库中。该格式是每个程序平台和底层主机操作系统的连接方法所专有的。Java方法与平台无关,但本地方法则不然。当运行中的Java程序调用本地方法时,虚拟机会加载包含本地方法的动态库并调用该方法。通过native方法,Java程序可以直接访问底层操作系统的资源,使得程序与特定的平台相关。本机方法接口-Java本机接口(JNI)允许您在特定主机系统的任何Java平台上运行使用本机方法。