1、java 代码从编译到执行(看下图)
图解:
1、首先我们得有一个 java 文件
2、运行 javac 编译成 class 文件
3、ClassLoader 会把这个 class 文件录入到内存中
4、ClassLoader 同时还会把 java 中需要的类库也放入内存中
5、同时 ClassLoader 会调用 字节码解释器 或者 JIT即时编译器
6、然后它俩再给到 执行引擎 执行
7、执行引擎 执行完后给到硬件
2、JVM 跨语言的平台
JVM 是由 C 语言和汇编语言开发
大家都知道 JAVA 只所以跨平台是因为 JDK 中有 JVM 虚拟机的存在
但是 JVM 和 JAVA 语言并没有关系
JVM 只负责编译,只要你是 CLASS 文件,那么都能在 JVM 虚拟机中运行
目前支持的语言有:scala、kotlin、groovy、clojure 等100多种
3、规范
JVM 它是一种规范(既然你想在我这里执行,那么你就得按我说的做 - 傲娇)
官方文档 JDK 13 Documentation - Home
4、常见的JVM
打开 cmd 命令输入 java -version,能看到我们使用的是 HotSpot
这里需要了解的可以去查看详细文档,主要介绍 HotSpot
HotSpot
由 SUM 公司开发,后面被 Oracle 收购,也是现在大家用的最广泛的 JVM,8 后就要收费了
Jrockit
由 BEA 公司开发,后面被 Oracle 收购,曾经号称最强
TaobaoVM
由 淘宝 开发,是 HotSpot 的深度定制版,免费哦~
LiquidVM
由 Liquid 开发,直接针对硬件
Azul zing
由 Azul 开发,目前最快,垃圾回收号称最强(1ms内),缺点:贼贵