JAVA的运行
.java(源码) -> .class(字节码) -> 机器码
java文件 -> 通过JDK中的编译器生成字节码文件(.class),这部分可视为是独立的 -> 交由jvm运行
以下所说的运行/执行,都是针对编译后的字节码文件来说的。
解释执行:将编译好的字节码一行一行地翻译为机器码执行。
编译执行:以方法为单位,将字节码一次性翻译为机器码后执行。
AOT编译==:JAVA9提供,运行前,将所有字节码直接编译为机器码。
在解释执行模式下,执行字节码文件时,逐条翻译并执行,翻译的过程浪费了很大一部分时间,影响效率。如启用JIT,则对于常用的字节码,直接使用JIT存起来的对应机器码即可,无需解释翻译,从而提升了JAVA运行速度。JIT针对于那些部分代码重复使用率高的工程来讲效果尤其显著。AOT同样的道理,去掉解释翻译的过程,从而提升JAVA执行效率。
名词解释
机器码即是CPU能理解并执行的语言。
JAVA的组成
JRE包含:JVM、JAVA类库、其他模块
JDK包含:JRE、其他工具(编译器、诊断工具等)
JVM两种启动模式
client模式:适用于启动快的桌面程序等
server模式:适用于高效的服务端
这是JVM的属性,可通过更改其配置文件配置。
附 抖音链接