-
1)是用来执行java字节码(二进制的形式)的虚拟计算机。
-
2)jvm是运行在操作系统之上的,与硬件没有任何关系。
- 1)跨平台:由Java语言编写的程序可以在不同的操作系统上运行:一次编写,多处运行。
- 2)原理:编译之后的字节码文件和平台无关,需要在不同的操作系统上安装一个对应版本的虚拟机(JVM)即可。
- 1.Java虚拟机不和任何语言绑定,它只与class文件这种二进制文件格式所关联。
- 2.只要将源文件编译为正确的Class文件,那么这种语言就可以在Java虚拟机上执行。
- 1)类加载模块。
- 2)运行时数据区 [ 堆、栈、方法区 ]。
- 3)执行引擎 [一般都是JIT编译器和解释器共存]。
-- 1. JIT编译器(主要影响性能):编译执行; 一般热点数据会进行二次编译,将字节码指令变成机器指令。将机器指令放在方法区缓存。 -- 2. 解释器(负责响应时间):逐行解释字节码。 当源代码转化为字节码之后,其实要运行程序,有两种选择: -- 1. 一种是使用 Java 解释器解释执行字节码; -- 2. 另一种则是使用 JIT 编译器将字节码转化为本地机器代码。



