例如,如果int变量a和b存储在局部变量1和2中,则此代码将计算this.f(3+b*a)
。 (这个指针存储在变量0中)
iload_1
aload_0
icons_3
iload_1
iload_1
imul
iadd
invokevirtual #4
为什么#4
站在这里?
这是类文件的常量池的索引;它说invokevirtual
的操作数存储在常量池的索引#4(将是Constant_MethodRef_info
。)如果你用javap
标志调用-v
,它将转储常量池,你会看到索引#4它正在调用什么类和方法。