JVM基础概念
什么是JVM
JVM:Java virtual machine,Java虚拟机,它是一种规范。是虚构出来的一台计算机。它可以将二进制字节码根据不同的操作系统转为当前操作系统识别的的字节码指令(汇编语言),从而实现跨平台。并有很好的内存管理功能(分为栈、堆、方法区等。)
jvm发展到现在,已经不仅仅是Java语言的一部分,它已经建立了自己的生态圈。成为一个标准规范。任何语言只要能将其编译为class文件格式,那么都可以在JVM中运行。
jvm规范:https://docs.oracle.com/javase/specs/jvms/se14/html/index.html
Java的跨平台特性:
Java从编码到执行
javac的过程:
常见的JVM实现
- Hotspot
oracle官方提供的,现在jdk默认提供的jvm实现。我们安装了jdk之后,通过命令:java -version 可以看出来。
- Jrockit
它是BEA公司出品,曾经号称世界上最快的JVM。后来被oracle收购,最终合并于hotspot。现在我们所使用的JVM是它们两个的结合。 - J9
IBM制作的JVM - Microsoft VM
- Taobao VM(hotspot深度定制版)
- LinquidVM (直接针对硬件的JVM)
- azul zing (最新垃圾回收的顶级标杆,昂贵的费用)
- 等等