JVM学习——JVM基础常识

文章目录

    • 为什么使用JVM
    • JDK、JRE与JVM的关系
    • OracleJDK和OpenJDK的关系
    • JVM和Hotspot的关系
    • JVM的两种运行模式及区别
    • JVM架构图
    • JVM执行流程图

为什么使用JVM

“一次编译、到处运行”,区别于C语言的在不同操作系统下需要编译成不同的机器码

JDK、JRE与JVM的关系

JVM学习——JVM基础常识_第1张图片

OracleJDK和OpenJDK的关系

一句话概括,“We have a lot in common”

JVM学习——JVM基础常识_第2张图片

JVM和Hotspot的关系

JVM是《JVM虚拟机规范》中提出的规范
Hotspot是使用JVM规范的一款目前最常用的商用产品。

JVM的两种运行模式及区别

两种运行模式:Server模式与Client模式,可以通过-server或-client设置JVM的运行参数。

两种模式的区别在于:

  • Server VM的初始堆空间会大一些,默认使用的是并行垃圾回收器,启动慢运行快
  • Client VM相对来说会保守一些,初始堆空间会小一些,使用串行的垃圾回收器,它的目标是为了让JVM的启动速度更快,启动快运行慢
  • 32位操作系统,Windows系统不论硬件配置如何都默认使用Client类型的JVM,其他操作系统配有2GB以上内存且有2个以上CPU的话默认使用Server模式,否则使用Client模式;
  • 64位操作系统只有Server模式,不支持Client模式。

JVM架构图

JVM学习——JVM基础常识_第3张图片

JVM执行流程图

Java编译成字节码、动态编译和解释为机器码的过程:
JVM学习——JVM基础常识_第4张图片
编译器和解释器的协调工作流程:
JVM学习——JVM基础常识_第5张图片

你可能感兴趣的:(JVM学习,java,jvm)