2010-03-21 3 views

ответ

15

Я не думаю, что это стандартные термины. Однако я понимаю их следующим образом:

  • призывание является событием, выдавшего вызов метода; технически - помещение метода в стек
  • исполнение - это весь процесс запуска метода - от вызова до завершения. И время выполнения - период, в течение которого проходит тело метода.
3

Ну, вызов метода означает вызов его по его названию и параметрам; выполнение метода означает его выполнение. Запуск, выборка строк по очереди и их запуск.

1

Есть некоторые тонкие различия:

  • Контекст
    • Контекст вызов связан с вызывающим абонентом
      • например параметры, которые вы используете для вызова метода являются фактическими параметрами
    • Контекст исполнения ассоциируется с вызываемым
      • например параметры, которые вы используете в исполнении метода являются формальными параметрами
  • Dynamic диспетчерская
    • Способ invokation может привести к выполнению какой-либо один из многих методов
    • Метод выполнения является точно один метод выполнения
  • Заказ: вызов предшествует исполнения ордеров
    • Призвание метода не сразу начать его исполнение
      • Представьте себе, если метод удаленного
      • недостаточность Призвание может быть вызвано неисправностью связи, ошибка в обработке аргументов по проводам, и т.д.
    • метод только начинает выполнение после вызова успешна

См также: 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
+0

У вас есть ссылки на эти вопросы? Особенно контекстные определения. –

3

Я не в курсе каких-либо стандартных определений те, но я понимаю, это:

  • вызова является актом вызова метода
  • исполнения акта на самом деле работают метод

результатов Призыва в исполнении.

1

Насколько мои знания относятся:

Призвание является предварительно шагом к исполнению. Если вызов успешен, то процесс исполнения начинается ...

Например,

параметры (переменные, объявленные в методе подписи) будет создан только в методе invocation.It является заранее шагом для выполнения , После вызова будет выполнен фактический метод, т. Е. Локальные переменные (переменные, объявленные в теле метода) будут созданы во время выполнения метода.

так параметры на invocating и локальные переменные при выполнении ...

Таким образом, успешное вызов приводит приступить к исполнению.

+0

Я хочу очистить эту точку ** локальные переменные (переменные, объявленные в теле метода) будут созданы во время выполнения метода **, переменные будут объявлены на этапе компиляции кода, а выполнение будет происходить только в случай вызова функции. – LeoAref

Смежные вопросы