乐趣区

关于java:JVM系列1虚拟机基础概念

JVM 系列笔记目录

  • 虚拟机的根底概念
  • class 文件构造
  • class 文件加载过程
  • jvm 内存模型
  • JVM 罕用指令
  • GC 与调优

虚拟机的根底概念

1.Java 从编码到执行过程

一个 Java 源文件如 Hello.java 通过编译命令 javac 编译成 class 文件Hello.class,在 JVM 中 ClassLoader 加载该 class 文件到 JVM 内存中,执行时候通过字节码解释器或是即时编译器解释后,交给执行引擎,执行引擎与 OS 硬件交互去实现执行。

2.JVM 与 class 文件

JVM 与 java 语言无关?是的,JVM 实际上是与 class 文件打交道,而不是间接与 Java 语言打交道。实践上,任何编程语言编译成 class 文件,就能够在 JVM 中执行,这也是上面说的跨语言平台。

3. 跨平台的语言和跨语言平台

跨平台语言:指该语言能够在不同的操作系统下运行,包含但不限于 linux、windows、mac、unix、andriod 等。

跨语言平台:如下图简略的例子,不论编程语言是 Java、scala、还是 kotlin,只有最终编译成 class 文件,就能在 JVM 中执行,这里的 Java Virtual Machine 就是跨语言平台。

4.JVM 的概念

何谓 Java Virtual Machine?简略了解就是虚构进去的一台电脑,有本人特定的字节码指令集(汇编语言的),有专门的内存治理、堆、栈、办法区等。

5.Java 语言标准和 JVM 标准

Java 语言标准: The Java Language Specification 具体能够参考 Oracle 官网 JVM 标准

JVM 标准: The Java Virtual Machine Specification 具体能够参考 Oracle 官网 JVM 标准

6. 常见的 JVM 标准实现

Oracle 官网规定了 JVM 的标准,不同的厂商针对这个标准实现各自的 JVM,如下表。

JVM 名称 厂商 阐明
HotSpot Oracle 官网 JVM
JRocket BEA 已经号称最快的虚拟机,被 Oracle 收买,合并进了 HotSpot
J9 IMB
MircrosoftVM Microsoft
TaobaoVM 阿里巴巴 淘宝的 JVM
LiquidVM BEA 间接针对硬件的 JVM
Azul VM Azul 最新垃圾回收器 Zing 的标杆

常识分享,转载请注明出处。学无先后,达者为先!

退出移动版