实现语言无关性和平台无关性的基础是虚拟机和字节码的存储格式,Java 虚拟机不和包括Java在内的任何语言把您堕过,它只与“Class”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。

Class 文件结构

  • Magic Number:0xCAFEBABY
  • Version:Minor Version & Major Version
  • Constant pool : Literal & Symbolic References
  • access_lags
  • this_class super_class interfaces
  • field_info
  • methods
  • attribute_info

字节码指令

  • 加载和存储指令
  • 运算指令
  • 类型转换指令
  • 对象创建与访问
  • 操作数栈管理指令
  • 控制转移指令
  • 方法调用和返回
  • 异常处理
  • 同步指令