¿Cuál es la diferencia entre la invocación y la ejecución de un método? ¿Son dos lo mismo?Java - Invocación y ejecución de métodos
Respuesta
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.
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.
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
- Un contexto invocación está asociada con la persona que llama
- 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
- Invocación de un método no se inicia de inmediato su ejecución
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
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.
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.
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
- 1. Método de invocación Java desde PHP5
- 2. Invocación encadenada en Java 7?
- 3. invocación de Java desde C++
- 4. ¿Cuál es la diferencia entre el paso de mensajes y la invocación de métodos?
- 5. Invocación de métodos no estáticos de una clase
- 6. Java: métodos genéricos y números
- 7. invocación de casquillo y sudo
- 8. Función de invocación dinámica en java
- 9. Reflejo de Java: ¿Cómo anulo o genero métodos en tiempo de ejecución?
- 10. C# Class Design - Eventos y métodos de ejecución larga
- 11. Inicializadores estáticos y métodos estáticos En Java
- 12. genéricos de Java, singletons y métodos estáticos
- 13. Java: ¿usa anotaciones y métodos de interceptación?
- 14. Clojure vars y Java métodos estáticos
- 15. Regla de comprobación para evitar la invocación de algunos métodos y constructores
- 16. Invocación simultánea del método Java del objeto singleton
- 17. BigO tiempo de ejecución en algunos métodos
- 18. ¿Implementando métodos abstractos en tiempo de ejecución?
- 19. Método de invocación por MethodInfo
- 20. MVP y UserControls y la invocación
- 21. Métodos refactorizados y compatibilidad binaria en Java
- 22. Clases y métodos abstractos en Java, Herencia
- 23. métodos genéricos y Tipo Inferencia en Java
- 24. Java para (x: y) la ejecución
- 25. Biblioteca de tiempos de ejecución de Java
- 26. ¿Para qué sirve la invocación de un método virtual Java?
- 27. Código Sandboxing Java/Groovy/Freemarker - Prevención de la ejecución de métodos específicos
- 28. Métodos nativos en Java
- 29. Ensambles dinámicos y métodos
- 30. Invocación de acciones distintas de construir y Clean & Build
¿Tiene referencias para ésas? Especialmente las definiciones de contexto. –