class文件格式

JVM基础知识

在这里插入图片描述
java编译成class文件,再被类加载器加载到JVM中。

java是解释执行还是编译执行的?
其实都有。如果一段代码用的特别多(一些特定的),那就被JIT即时编译成exe文件,下次用的时候就不需要再解释,可以直接调用。

jvm特点

  1. JVM和java无关,只跟class这种格式有关。任何语言只有变成class就可以在jvm上编译执行。
  2. jvm是一种规范。定义了jvm应该具备哪些规范
  3. 是虚构出来的一台计算机。所以有自己的CPU,有自己的指令集,自己的内存管理。

常见JVM实现

HotSpot
oracle官方

Jrockit
曾号称世界最快的JVM,被Oracle收购,合并于hotspot

azul zing
收费。最新垃圾回收的业界标杆。速度极快(号称STW 1ms内)

HotSpot的ZGC参考的azul中的实现。

JVM JRE JDK区别

JVM只是执行的。JRE是运行已编译Java程序所需的所有内容的集合。JDK是开发用的。
在这里插入图片描述

Class File Format

二进制字节流