Administrator
Administrator
Published on 2024-09-24 / 2 Visits
0
0

字节码文件详解

字节码文件详解

组成

image

基础信息

魔数

位于文件开头4个字节

文件拓展名无法确定文件类型,软件都是通过校验文件开头字节确认自己是否支持文件的,.class文件开头固定为CAFEBABE,即魔术

主副版本号

image

用于判断字节码文件和jdk是否版本兼容

常量池

避免相同的内容重复定义,节省空间,一些变量的名字也会采用常量池的引用

image

方法

操作数栈

临时存放即将运算的数据,先入后出,有栈的性质

局部变量表

存放局部变量数据,底层实现为一维数组,[0]​位存放入口参数args

常见字节码命令

  • iconst_0​将数字0放入操作数栈
  • istore_1​将操作数栈的数据取出放到局部变量表[1]​的位置
  • iload_1​将局部变量表[1]​的数据复制到操作数栈
  • iadd​操作数栈的两个数执行加法操作
  • return​方法结束返回


Comment