JVM 基础
JVM 概述
- JVM 是 Java Virtual Machine 的缩写,它是一个虚构出来的计算机,它有自己的字节码指令集(汇编语言)和内存管理(栈、堆、方法区等)
- JVM 是一种规范,JVM本身与Java语言无关,只与 .class 文件相关,任何语言只要编译成 .class文件或者在程序运行时生成的.class二进制流,都可以在 JVM 上运行
- JVM 是跨语言的平台,目前已支持100多种语言,如 java、scale、kotlin、groovy等等
- 不同操作系统各自实现 JVM,从而实现语言的跨平台
java 是如何从编码到执行的
常见的JVM 实现
- Hotspot Oracle(常用)
- Jrockit BEA,已被Oracle收购
- TaobaoVM Hotspot 深度定制
- J9 IBM
- Microsoft VM
- LiquidVM 直接对接硬件
- azul zing 垃圾回收标杆(1ms)
- ...
JDK、JRE、JVM的关系
- core lib :java核心类库
- development kit:开发工具集
- JDK:java开发开发工具集
- JRE:运行环境
- JVM:java虚拟机