(一)初识JVM

218 阅读1分钟

一、什么是JVM

JVM,全称Java Virtual Machine, Java虚拟机,是Java程序的运行环境(Java二进制字节码.class的运行环境)。

优点:
  • 跨平台语言的。一次编码,到处运行。
  • 自动内存管理,垃圾回收功能。
  • 数组下标越界检查,越界时会抛出异常。 比如C语言,没有数组下标越界检查,如果发生越界,会占用其他内存,可能覆盖其中的数据。这是不可容忍的。
  • 多态:JVM内部使用区方法表的机制实现多态。
比较:JVM JRE JDK

JRE: Java Runtime Environment(Java运行时环境)

JDK:Java Development Kit(Java开发工具包)

JavaSE:Java Stantard Edition(Java标准版)

JavaEE:Java Enterprise Edition(Java企业版)

20230828-142607.jpg

二、文件执行流程

20230828-150033.jpg

  1. Java源文件经过编译后生成.class文件。
  2. ClassLoad加载.class文件到JVM中运行。
  3. Method Area中存放类。
  4. Heap中存放类创建的实例对象。
  5. JVM Stacks提供了线程运行时需要的内存空间。
  6. 实例对象调用方法时会用到JVM Stacks,PC Register, Native Method Stacks。
  7. 方法执行时,由执行引擎中的Interpreter逐行将.class文件中的JVM指令解释成机器码,然后才能交由CPU执行。
  8. 热点代码(即频繁执行的代码)由JIT Compiler优化编译。
  9. GC回收Heap中无引用的对象。
  10. 借助本地方法接口调用操作系统的功能方法。