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

简要叙述虚拟机的工作原理


一、虚拟机主要是什么原理?

虚拟机是指通过软件模拟的、在完全隔离的环境中运行的、具有完整硬件系统功能的完整计算机系统。每个虚拟机都有独立的CMOS、硬盘和操作系统,虚拟机可以像物理机一样操作。


二、简述jvm工作原理Java是一项由四个方面组成的技术:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序编程接口(JavaAPI)。
运行时环境代表Java平台。开发人员编写Java代码(.java文件),然后将其编译为字节码(.class文件),然后将字节码加载到内存中。一旦进入虚拟机,它就会被解释器解释并执行,或者可选地由实时代码生成器转换为机器代码并执行。
Java平台构建在Java虚拟机和Java应用程序编程接口之上。Java语言就是这个平台的一个通道。用Java语言编写和编译的程序可以在这个平台上运行。
如果看一下Java平台的结构,就可以发现JVM(Java虚拟机)是核心,程序独立于底层操作系统和硬件。下面是移植接口,它由两部分组成:适配器和Java操作系统,其中与平台相关的部分称为适配器。JVM通过上述移植接口在特定平台和操作系统上实现。JVM是一组Java基础库和扩展类库及其API,由于Java虚拟机(JVM),使用JavaAPI编写的应用程序和Java小程序可以在任何Java平台上运行。Java的平台独立性是通过实现操作系统来实现的。
JVM在其生命周期中具有执行Java程序的独特任务。因此,当Java程序启动时,程序终止时会创建JVM实例。该实例也会消失。接下来我们将从架构和执行流程两个方面对JVM进行更深入的研究。
虚拟机的体系结构
·每个JVM都有两种机制:
①类加载子系统:用于加载的有以下类或接口。合适的名称
②执行引擎:负责执行加载的类或接口中包含的命令。
·每个JVM包括:
方法区、Java堆、Java栈、本地方法栈、指令计数器等隐式寄存器
2.编译和执行Java代码的整个过程
前面说过,编译和执行Java代码的方法大致就是开发人员编写Java代码(.java文件),然后将其转换为字节码(.java)。编译后,字节码进入虚拟机,在虚拟机中被解释和执行。它由解释器执行,或者可选地由实时代码生成器转换为机器代码。
(1)Java代码编译是由Java源代码编译器完成的,即将Java代码转换为JVM字节码(.class文件)的过程。
2)Java字节码的执行是由JVM执行引擎完成的。
Java代码编译和执行的整个过程包括以下三个重要机制:

·Java源代码编译机制
·类加载机制
·类执行机制
(一)Java源代码编译机制
Java源代码编译由以下三个过程组成:
①分析与符号表输入
②注释处理
③语义分析和类文创建
最终生成的类文件由以下部分组成
①结构信息:类。文件包含格式版本号以及各部分的数量和大小信息。
②元数据:对应Java源代码中的声明和常量,这是信息。包括声明信息、域和方法声明信息、类/继承超类/实现接口的常量池。
③方法信息:对应Java源代码中的语句、表达式对应的信息。包括字节码、异常处理表、求值堆栈和局部变量区大小、求值堆栈类型记录、调试符号信息。
(2)类加载机制JVM类加载是由ClassLoader及其子类进行的是通过完成的。