В чем разница между вызовом и выполнением метода? Две одинаковые вещи?
Java - вызов и выполнение метода
Ответ 1
Я не думаю, что это стандартные термины. Однако я понимаю их следующим образом:
- вызов - это событие выдачи вызова методу; технически - помещение метода в стек
- Выполнение - это весь процесс запуска метода - от вызова до завершения. Время выполнения - период, в течение которого выполняется тело метода.
Ответ 2
Ну, вызов метода означает вызов его по его имени и параметрам; выполнение метода означает его выполнение. Запуск, выборка строк по очереди и их запуск.
Ответ 3
Я не знаю каких-либо стандартных определений, но я понимаю это:
- вызов - это вызов вызова метода
- Выполнение - это фактический запуск метода
Вызов вызывает выполнение.
Ответ 4
Есть несколько тонких отличий:
- Контекст
- Контекст вызова связан с вызывающим
- например. параметры, которые вы используете для вызова метода, - это фактические параметры
- Контекст выполнения связан с вызываемым пользователем
- например. параметры, которые вы используете при выполнении метода, являются формальными параметрами
- Контекст вызова связан с вызывающим
- Динамическая отправка
- Вызов метода может привести к выполнению любого из многих методов.
- Метод выполнения - это точно один исполняемый метод
- Заказ: вызов предшествует исполнению
- Вызов метода не сразу начинает выполнение
- Представьте, что метод удален.
- Сбой вызова может быть вызван сломанным подключением, ошибкой в обработке аргументов по проводу и т.д.
- Метод запускается только после успешного завершения вызова
- Вызов метода не сразу начинает выполнение
Смотрите также: Обзор вызова удаленного метода. Когда вы считаете метод удаленным, разница между вызовом (запрос на запуск выполнения чего-либо) и выполнение (что-то, что происходит где-то, если запрос успешнее) становится более очевидным.
Рассмотрим также случай с отражением. Это метод 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
Ответ 5
Насколько мне известно,
Вызов - это предварительный шаг для выполнения. Если вызов выполняется успешно, процесс выполнения начинается...
Например,
Параметры (переменные, объявленные в сигнатуре метода) будут созданы только во время вызова метода. Это предварительный шаг для выполнения. После вызова будет выполнен фактический метод, т.е. Локальные переменные (переменные, объявленные в теле метода) будут созданы во время выполнения метода.
поэтому параметры вызываются и выполняются локальные переменные...
Таким образом, успешный вызов приводит к продолжению выполнения.