【发布时间】:2011-01-30 00:32:01
【问题描述】:
方法的调用和执行有什么区别?两个是一回事吗?
【问题讨论】:
标签: java terminology
方法的调用和执行有什么区别?两个是一回事吗?
【问题讨论】:
标签: java terminology
我认为这些不是标准术语。但是我通过以下方式理解它们:
【讨论】:
好吧,调用方法意味着通过它的名称和参数调用它;执行一个方法意味着执行它.. 运行它,逐行获取它的行并运行它们。
【讨论】:
我不知道这些的任何标准定义,但我的理解是:
调用导致执行。
【讨论】:
有一些细微的差别:
另请参阅:Overview of Remote Method Invocation。当您认为该方法是远程的时,调用(开始执行某事的请求)和执行(如果请求成功则在某处发生的某事)之间的区别变得更加明显。
还要考虑反射的情况。这是java.lang.reflect.Method的方法:
public Object invoke(Object obj, Object... args) throws
IllegalAccessException, // failure during invocation
IllegalArgumentException, // failure during invocation
InvocationTargetException // invocation was successful,
// but exception was thrown during execution
这里也清楚地调用和执行是两个不同的东西。如果您需要更有说服力,请考虑在此反射上下文中调用与执行 NullPointerException 的情况:
obj == null方法为实例方法时InvocationTargetException 的原因
【讨论】:
据我所知:
调用是执行的前置步骤。如果调用成功则执行过程开始...
例如,
参数(方法签名中声明的变量)只会在方法调用时创建,是执行的前置步骤。 调用后,实际的方法将被执行,即在方法执行过程中创建局部变量(方法体中声明的变量)。
所以参数在调用和局部变量在执行......
因此,成功调用导致继续执行。
【讨论】: