【发布时间】:2015-02-18 08:11:55
【问题描述】:
如果你有 Java 例如:
void methodA(int i) { ... }
void wrapperMethodArg1() { methodA(1); }
wrapperMethodArg1();
当你调用第二个方法时,JVM最终会做两个还是一个方法调用?
【问题讨论】:
-
显然是 2 它的机器
-
它最终会做两个或一个方法调用。
-
编译器可以选择通过内联方法调用来优化你的代码。
-
注意这不是优化
-
“方法调用”不是汇编代码中的东西。所以你可以说它会进行零次方法调用(因为它们不存在),或者你可以说它总是会进行两次方法调用(在源代码或字节码级别,因为那是你写的)