虚拟机和物理机
虚拟机(Virtual Machine)和物理机的区别,物理机指的是可以直接运行二进制的机器指令,直接可以对操作系统进行一系列的操作,总之就是可以直接对底层的物理设备进行一系列的操作,并使他们进行运行。
虚拟机指的是由软件实现的,不受物理机实际条件制约的“机器”,在这个虚拟机上面,主要是这个虚拟机可以把一系列的指令集翻译成机器指令。
JVM的作用
- 加载.class文件,把.class文件对应的二进制字节流加载到jvm中。之后,执行引擎负责把Java对应的字节码文件进行解释和编译(特别注意的是,这里并不是javac那种编译,那种编译称为前端编译,在这里的编译是后端JIT java即时编译器进行编译,这个后面再说)。执行引擎把java字节码翻译成操作系统可以识别的机器指令放在本地的硬件上进行运行。学术一点儿的话可以这样说,执行引擎是负责完成相对高级的java字节码向机器指令的翻译过程,也就是说执行引擎是负责根据PC寄存器的指令地址,依靠局部变量表以及操作数栈完成一系列的运算过程。说白了就是字节码指令形式上的执行者!