TGViewer
Java задачи с собеседований Java задачи с собеседований @javaquiz · 5.71K subscribers
Post #2065 1.54K
❓ Вопрос на собеседовании

Как лямбда-выражения в Java используют переменные из внешнего контекста и какие существуют ограничения на это?

Ответ ⬇️
В Java лямбда-выражения могут использовать переменные из окружающей области, но только если они являются фактически финализированными. Это означает, что переменная должна быть объявлена как final или её значение не должно изменяться после инициализации.

Данное ограничение связано с тем, что лямбды могут выполняться в другом потоке, и изменение переменной вне лямбды может привести к непредсказуемым результатам.

Пример использования ⚙️
import java.util.function.Consumer;

public class Main {
public static void main(String[] args) {
int base = 10;

Consumer multiplier = value -> {
System.out.println(value * base); // Использование захваченной переменной
};

multiplier.accept(5); // Вывод: 50

// base = 20; // Ошибка компиляции: переменная должна быть фактически финализированной
}
}

👩‍💻
@javaquiz
  • 👍 8
  • 🔥 1
More from @javaquiz
  1. Oct 1, 2026Post #2703
  2. Sep 29, 2026Подключить ИИ к среде разработки — ещё не значит получить полезного помощника. Нужно выбра…
  3. Sep 14, 2026❓ Вопрос на собеседовании Что такое ForkJoinPool в Java, как он работает, и как его исполь…
  4. Sep 4, 2026⚙️ List.subList() В Java метод subList() позволяет создать представление части списка. Это…
  5. Aug 17, 2026➡️ Quarkus — быстрый и лёгкий фреймворк для Java-приложений Quarkus — оптимизированный фре…
  6. Jul 23, 2026⚙️ Files.mismatch() Метод Files.mismatch(), добавленный в Java 12, позволяет сравнить два…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →