定义
- JVM是JAVA虚拟机(JAVA Virtual Machine)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
- JAVA虚拟机有自己完善的虚拟硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。
- JVM屏蔽了与具体操作系统平台相关的信息,使得JAVA程序只需生成在JAVA虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行
JVM运行流程
java源码(.java文件) -------编译-----> 字节码(.class文件) --------传输----------> 虚拟机 运行
JVM JRE JDK JIT
- JVM java虚拟机 :所有的JAVA程序都是运行在JVM上
- JRE java运行环境:主要用于执行JAVA程序,还包含一些基础的JAVA API,基本类库
- JDK JAVA开发工具包:主要包含了一些开发工具,JAVAC编译工具、jar打包执行程序、还有一些JVM监控工具等
- JIT 即时编译:当代码执行的次数超过一定的阈值时,会将 Java 字节码转换为本地代码,大幅提升性能
主流JVM
- Sun HotSpot :综合性能优秀,应用最广,开源
- Bea JRockit :执行效率最优秀
- IBM J9
- Azul VM、Liquid VM、Squawk VM
JVM体系结构
- 类加载器(Class Loader)
- 运行时数据区(Runtime Data Area)
- 执行引擎(Execution Engine)
- 本地库接口(Native Interface)
- 本地方法库(Native Libraries)