JVM基础入门(什么是JVM)

1. java从编码到执行的过程

图片.png

  • Classloader:将class文件和我们java代码需要的类库装载到内存中,装载完成后,会调用字节码解释器或者用即使编译器来进行编译,然后由执行引擎执行。
    复制代码

Java程序最初是仅仅通过解释器解释执行的,即对字节码逐条解释执行,这种方式的执行速度相对会比较慢,尤其当某个方法或代码块运行的特别频繁时,这种方式的执行效率就显得很低。 于是后来在虚拟机中引入了JIT编译器(即时编译器),当虚拟机发现某个方法或代码块运行特别频繁时,就会把这些代码认定为“Hot Spot Code”(热点代码),为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各层次的优化,完成这项任务的正是JIT编译器。 即时编译生成机器相关的中间码,可重复执行缓存效率高。解释执行直接执行字节码,重复执行需要重复解释。

2. JVM

  • java和jvm无关,只和class形式的文件有关系,任何语言只要可以编译成class文件,都可以扔在jvm中执行。
  • java虚拟机是一种规范

图片.png

  • JDK&JRE&JVM 三者的关系

图片.png

  1. JVM:java虚拟机
  2. JRE:JVM + java运行时环境
  3. JDK:JRE + 各种开发lib包

猜你喜欢

转载自juejin.im/post/7031384180177141796
JVM