一、JVM、JRE、JDK分别是啥
JVM:Java虚拟机
JRE:Java运行时环境
JDK:Java开发工具
其中从大到小:JDK → JRE → JVM
二、Java字节码
.java文件通过javac命令编译成.class文件,由操作码opcode+操作数组成
三、Java代码如何运行
解释执行: 字节码 → opcode+操作数 → 机器码
JIT:字节码 → 机器码
通俗点说,解释执行就是在执行时,读取一行字节码,翻译成opcode与操作数,然后转成对应的机器码调用操作系统接口;而JIT是将代码编译成机器码存下来,每次执行时直接执行(一次编译多次执行)。
也就是说,解释执行JVM中只有字节码,需要的时候再翻译;JIT执行是JVM的JIT编译器已经将字节码编译成了机器码存储在内存中,执行时直接用就行。