java 代码
Java源文件中的代码是如何被JVM执行的

编译代码
上面的代码只有我们人类能够认识,JVM虚拟机是不认识的,所以为了让虚拟机能够执行,我们还需要把它编译一下,编译命令:
Java源文件中的代码是如何被JVM执行的
编译完以后会生成一个Test.class文件,这个文件就是虚拟机能够读懂的执行文件了,内容如下图所示:
Java源文件中的代码是如何被JVM执行的

如何查看classfile文件的内容
class文件虽然虚拟机能读懂,但是我们人类取读的话就比较费力的。如果你想要了解这个文件的内容可以借用javap这个工具。查看命令:
Java源文件中的代码是如何被JVM执行的

执行完这个命令以后,就能够得到下图所示的内容了:
其中红框所示的内容就是我们上面calc方法的字节码对应的助记符。
Java源文件中的代码是如何被JVM执行的

Java字节码是如何被虚拟机执行的
我们可以从上面的classfile中找到calc方法的字节吗:

Java源文件中的代码是如何被JVM执行的

这些字节码和javap命令输出的calc方法的助记符是一一对应的。

同时从classfile中我们可以知道calc方法对应的代码需要深度为2的操作数栈和4个Slot的局部变量空间。有了这些信息我们就可以画出calc方法执行过程动画了:

Java源文件中的代码是如何被JVM执行的

转载自
https://www.toutiao.com/i6674491109969756685/

相关文章:

  • 2021-06-28
  • 2021-07-15
  • 2021-07-23
  • 2022-12-23
  • 2021-07-10
  • 2021-11-05
  • 2021-07-07
  • 2022-12-23
猜你喜欢
  • 2021-12-02
  • 2021-12-19
  • 2022-12-23
  • 2023-03-30
  • 2022-01-09
  • 2021-05-25
  • 2022-01-19
相关资源
相似解决方案