• 字节码文件是什么?

      • 源代码经过编译器编译之后会生成一个或多个字节码文件,字节码是一种二进制的类文件,内容是 JVM 指令,而不像 C、C++ 经由编译器直接生成机器码。
    • 什么是字节码指令(byte code)?

      • Java 虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(opcode) 以及跟随其后的 0 个至多个 代表此操作所需参数的操作数(operand) 所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。
      • 比如: 操作码(操作数)
        • image.png
    • 如何解读供虚拟机解释执行的二进制字节码?

      • Notepad++ 中安装 HEX-Editor 插件,或者使用 Binary Viewer
      • javap -v xxx.class > xxx.txt
        • image.png
      • 使用 IDEA 插件:jclasslib 或者 jclasslib bytecode viewer 客户端工具。(可视化更好)
        • image.png