关于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的标杆

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理