目录
什么是JVM
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。这也是Java能够一次编译,到处运行的原因。 --- (百科)
由此可以总结JVM有2个特性
1、屏蔽不同操作系统(在各自系统均可安装)
2、运行字节码文件
JRE、JDK和JVM的关系
JDK(Java Development Kit)软件开发工具包,是用来编译、调试Java程序的开发工具包。包括Java工具(javac / java / jdb...)和Java基础的类库(java API )。
JRE(Java Runtime Environment)Java运行环境,它包括Java虚拟机(jvm)、Java核心类库(IO / AWT / JDBC...)和支持文件。
JVM(Java Virtual Machine)Java虚拟机,是JRE的一部分。JVM主要工作是解释自己的指令集(即字节码)并映射到本地的CPU指令集和OS的系统调用。Java语言是跨平台运行的,不同的操作系统会有不同的JVM映射规则,使之与操作系统无关,完成跨平台性。
JVM 版本
- Hotspot
Oracle 官方
- Jrockit
BEA,曾经号称世界上最快的JVM,后被 Oracle 收购,合并于 Hotspot
- IBM
- Microsoft VM
- TaobaoVM
Hotspot 深度定制版
- LiquidVM
直接针对硬件
- azul zing
商业产品,速度非常快 - 阿里JVM(基于 OpenJDK7)