说明:
“.java” – java 源代码文件
“.class” – 字节码文件
1.首先在 idea 中编写代码,也就是编写“.java”文件
2.点击编译(.java -> .class)
编译后的“.class” 存储在target/classes/目录下
在 idea 中直接点开“.class”是和.java 文件一致的,这是因为 idea 会自动把它反编译为.java 文件。
使用 javap -v Xxxx.class 命令可查看人类可见的字节码指令
3.JVM 加载、验证
由 JVM 的类加载器(ClassLoader)加载 .class 文件并验证字节码合法性。
4.JVM 解释
加载的“.class” 被 JVM 加载,然后被解释为当前平台的机器码
5.机器码执行
JVM 将生成的机器码交由操作系统执行
总结:
这也是为什么.class 字节码文件为什么能跨平台执行的原因,JVM 会把他解释为适用当前平台的机器码,交由操作系统执行。