调用方法的四条指令
2025年09月21日
调用方法的四条指令
在Java字节码指令集中有四条调用方法的指令,严格来说是五条,在JDK1.7中加入了invokedynamic指令。常用的四条方法调用指令如表3-29所示。
表3-29 方法调用指令

这四条方法调用指令都需要一个执向常量池中某个CONSTANT_Methodref_info常量的操作数,即告诉jvm,该指令调用的是哪个类的哪个方法。除invokestatic指令外,其余指令都至少需要一个参数,这个参数就是隐式参数this。
其中invokestatic指令用于调用一个静态方法,只要调用的方法是静态方法就必须要使用这条指令。invokeinterface指令用于调用接口方法,运行时再根据对象的类型找出一个实现该接口方法的适合方法进行调用。invokespecial指令用于调用实例初始化方法、私有方法和父类的子类可访问的方法。invokevirtual指令用于调用对象的实例方法,根据对象的实际类型进行分派。