Java-Invocazione ed esecuzione del metodo


Qual è la differenza tra l'invocazione e l'esecuzione di un metodo ? Sono due la stessa cosa ?

Author: skaffman, 2010-03-21

5 answers

Non penso che questi siano termini standard. Tuttavia li capisco nel modo seguente:

  • l'invocazione è l'evento di emissione della chiamata al metodo; tecnicamente - posizionando il metodo sullo stack
  • esecuzione è l'intero processo di esecuzione del metodo - dalla chiamata fino al completamento. E il tempo di esecuzione è il periodo durante il quale viene eseguito il corpo del metodo.
 20
Author: Bozho, 2010-03-21 11:47:32

Bene, richiamare un metodo significa chiamarlo con il suo nome e i suoi parametri; eseguire un metodo significa eseguirlo.. eseguirlo, recuperando le sue linee una per una ed eseguirle.

 4
Author: Halo, 2010-03-21 11:39:21

Non sono a conoscenza di alcuna definizione standard di quelli, ma la mia comprensione è questa:

  • l'invocazione è l'atto di chiamare un metodo
  • l'esecuzione è l'atto di eseguire effettivamente il metodo

L'invocazione risulta in esecuzione.

 4
Author: Joachim Sauer, 2010-03-21 12:05:34

Ci sono alcune sottili differenze:

  • Contesto
    • Al chiamante è associato un contesto di chiamata
      • ad esempio i parametri che stai utilizzando per richiamare un metodo sono i parametri effettivi
    • Un contesto di esecuzione è associato al chiamato
      • ad esempio, i parametri utilizzati nell'esecuzione di un metodo sono parametri formali
  • Invio dinamico
    • Un'invocazione del metodo può portare alla esecuzione di uno qualsiasi dei molti metodi
    • Un metodo di esecuzione è precisamente un metodo di esecuzione
  • Ordine: l'invocazione precede l'esecuzione
    • L'invocazione di un metodo non inizia immediatamente la sua esecuzione
      • Immagina se il metodo è remoto
      • L'errore di chiamata potrebbe essere causato da una connessione interrotta, un errore nella gestione degli argomenti sul filo, ecc
    • Un metodo inizia l'esecuzione solo dopo l'invocazione è successo

Vedere anche: Panoramica dell'invocazione del metodo remoto . Se si considera che il metodo è remoto, la differenza tra invocazione (una richiesta per avviare l'esecuzione di qualcosa) ed esecuzione (qualcosa che sta accadendo da qualche parte se la richiesta ha esito positivo) diventa più evidente.

Considera anche il caso di reflection. Questo è un metodo di 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

Anche qui chiaramente l'invocazione e l'esecuzione sono due cose diverse. Se hai bisogno di più convincente, considera il caso di un'invocazione vs esecuzione {[2] } in questo contesto di riflessione:

  • Può essere lanciato durante l'invocazione, quando obj == null quando il metodo è un metodo di istanza
  • Può essere lanciato durante l'esecuzione, nel qual caso verrà avvolto come la causa di un InvocationTargetException
 1
Author: polygenelubricants, 2010-03-21 12:45:47

Per quanto riguarda la mia conoscenza è preoccupazione:

L'invocazione è il pre-passo per l'esecuzione. Se l'invocazione ha successo, inizia il processo di esecuzione...

Ad esempio,

I parametri

(le variabili dichiarate nella firma del metodo) verranno creati solo durante il metodo invocation.It è il pre-passo per l'esecuzione. Dopo l'invocazione, verrà eseguito il metodo effettivo, ovvero le variabili locali(le variabili dichiarate nel corpo del metodo) verranno create durante l'esecuzione del metodo.

Quindi i parametri sono in fase di invocazione e le variabili locali sono in esecuzione...

Pertanto, l'invocazione riuscita porta a procedere all'esecuzione.

 1
Author: Jothsna Nalla, 2010-12-17 10:00:28