JVM学习(一)JVM基础常识
JVM的基础常识简单带过
为什么使用JVM
“一次编译、到处运行”,区别于C语言的在不同操作系统下需要编译成不同的机器码
JDK、JRE与JVM的关系
OracleJDK和OpenJDK的关系
一句话概括,“We have a lot in common”
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执行流程图
Java编译成字节码、动态编译和解释为机器码的过程:
编译器和解释器的协调工作流程: