2010-03-21 15 views

Respuesta

15

No creo que estos sean términos estándar. Sin embargo los entiendo de la siguiente manera:

  • invocación es el caso de la emisión de la llamada al método; técnicamente: colocar el método en la pila
  • ejecución es todo el proceso de ejecución del método, desde la invocación hasta la finalización. Y tiempo de ejecución es el período durante el cual se ejecuta el cuerpo del método.
3

Bueno, invocar un método significa llamarlo por su nombre y parámetros; ejecutar un método significa ejecutarlo ... ejecutarlo, buscar sus líneas una por una y ejecutarlas.

1

hay algunas diferencias sutiles:

  • Contexto
    • Un contexto invocación está asociada con la persona que llama
      • por ejemplo los parámetros que utiliza para invocar un método son los parámetros reales
    • un contexto de ejecución se asocia con el destinatario de la llamada
      • por ejemplo, los parámetros que se está usando en una ejecución del método son parámetros formales
  • Asignación dinámica
    • Una invocación método puede conducir a la ejecución de cualquiera de los muchos métodos
    • Un método de ejecución es precisamente una ejecución método
  • Orden: invocación precede a la ejecución
    • Invocación de un método no se inicia de inmediato su ejecución
      • Imagínese si el método es remota
      • fracaso Invocación podría ser causada por interrupción de la conexión, errores en el manejo de los argumentos sobre el alambre, etc
    • Un método sólo comienza a ejecutar después de la invocación es exitosa

Ver también: Overview of Remote Method Invocation. Cuando considera que el método es remoto, la diferencia entre la invocación (una solicitud para iniciar la ejecución de algo) y la ejecución (algo que está sucediendo en algún lugar si la solicitud es exitosa) se vuelve más evidente.

Considere también el caso con la reflexión. Este es un método de 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 

Aquí también claramente invocación y ejecución son dos cosas diferentes. Si necesita más convincente, consideremos el caso de una invocación vs ejecución NullPointerException en este contexto la reflexión:

  • Puede ser lanzado durante la invocación, cuando obj == null cuando el método es un método de instancia
  • Puede ser lanzado durante ejecución, en cuyo caso será envuelto como la causa de un InvocationTargetException
+0

¿Tiene referencias para ésas? Especialmente las definiciones de contexto. –

3

no estoy al tanto de cualquier definiciones estándar de esos, pero mi entendimiento es la siguiente:

  • invocación es el acto de llamar a un método
  • ejecución es el acto de ejecutar realmente el método

resultados de invocación en ejecución.

1

En lo que a mi conocimiento preocupación:

Invocación es el paso previo para su ejecución. Si la invocación tiene éxito, entonces el proceso de ejecución comienza ...

Por ejemplo,

parámetros (las variables declaradas en la firma del método) sólo se creará durante invocation.It método es el paso previo para la ejecución . Después de la invocación, el método real se ejecutará, es decir, las variables locales (las variables que se declaran en el cuerpo del método) se crearán durante la ejecución del método.

modo parámetros están en invocating y las variables locales se encuentran en ejecución ...

Por lo tanto, la invocación exitosa conduce a proceder a la ejecución.

+0

Quiero borrar este punto ** las variables locales (las variables que se declaran en el cuerpo del método) se crearán durante la ejecución del método **, las variables se declaran durante la fase de compilación del código, y la ejecución solo ocurrirá en caso de invocación de función. – LeoAref

Cuestiones relacionadas