Является ли аргумент метода локальной переменной в Java?

«Является ли аргумент метода локальной переменной в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, формальные параметры (аргументы) метода являются особым видом локальных переменных. Они существуют только в рамках выполнения метода и уничтожаются после его завершения.

Ключевые характеристики:

  • Область видимости: Ограничена телом метода.
  • Время жизни: Создаются при вызове метода и уничтожаются после его завершения.
  • Инициализация: Инициализируются значениями, переданными при вызове (у них нет значений по умолчанию).
  • Модификаторы: Могут быть объявлены как final, что запрещает их повторное присваивание внутри метода.

Пример:

public void processUser(String userName, final int userId) {
    // userName и userId — локальные переменные (аргументы)
    // userId — final, его нельзя изменить: userId = 5; // Ошибка компиляции
    String localMessage = "Processing"; // Другая локальная переменная
    System.out.println(localMessage + " " + userName);
}
// userName, userId, localMessage здесь недоступны

Важно: В Java аргументы передаются по значению. Для примитивных типов передаётся копия значения, для ссылочных типов — копия ссылки на объект.