В чем разница между вызовом и выполнением метода? Два одинаковых?Java - вызов и выполнение метода
ответ
Я не думаю, что это стандартные термины. Однако я понимаю их следующим образом:
- призывание является событием, выдавшего вызов метода; технически - помещение метода в стек
- исполнение - это весь процесс запуска метода - от вызова до завершения. И время выполнения - период, в течение которого проходит тело метода.
Ну, вызов метода означает вызов его по его названию и параметрам; выполнение метода означает его выполнение. Запуск, выборка строк по очереди и их запуск.
Есть некоторые тонкие различия:
- Контекст
- Контекст вызов связан с вызывающим абонентом
- например параметры, которые вы используете для вызова метода являются фактическими параметрами
- Контекст исполнения ассоциируется с вызываемым
- например параметры, которые вы используете в исполнении метода являются формальными параметрами
- Контекст вызов связан с вызывающим абонентом
- 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
Я не в курсе каких-либо стандартных определений те, но я понимаю, это:
- вызова является актом вызова метода
- исполнения акта на самом деле работают метод
результатов Призыва в исполнении.
Насколько мои знания относятся:
Призвание является предварительно шагом к исполнению. Если вызов успешен, то процесс исполнения начинается ...
Например,
параметры (переменные, объявленные в методе подписи) будет создан только в методе invocation.It является заранее шагом для выполнения , После вызова будет выполнен фактический метод, т. Е. Локальные переменные (переменные, объявленные в теле метода) будут созданы во время выполнения метода.
так параметры на invocating и локальные переменные при выполнении ...
Таким образом, успешное вызов приводит приступить к исполнению.
Я хочу очистить эту точку ** локальные переменные (переменные, объявленные в теле метода) будут созданы во время выполнения метода **, переменные будут объявлены на этапе компиляции кода, а выполнение будет происходить только в случай вызова функции. – LeoAref
У вас есть ссылки на эти вопросы? Особенно контекстные определения. –