Java 方法调用优化
Java method call optimization
如果您在 Java 中,例如:
void methodA(int i) { ... }
void wrapperMethodArg1() { methodA(1); }
wrapperMethodArg1();
当你调用第二个方法时,JVM最终会调用两个还是一个方法?
你说的是方法 wrapperMethodArg1
的内联。
答案是:无法预知。编译器可能不会内联它,因为这会阻止反射调用,但如果该方法被调用的频率足以优化,JVM 可能会在运行时动态地执行它。
如果您在 Java 中,例如:
void methodA(int i) { ... }
void wrapperMethodArg1() { methodA(1); }
wrapperMethodArg1();
当你调用第二个方法时,JVM最终会调用两个还是一个方法?
你说的是方法 wrapperMethodArg1
的内联。
答案是:无法预知。编译器可能不会内联它,因为这会阻止反射调用,但如果该方法被调用的频率足以优化,JVM 可能会在运行时动态地执行它。