> Что такое замыкание? (Java)
Уровень: junior · Роль: backend · Язык: Java · Категория: Технические вопросы
Компании: JSA GROUP
Стек: Java, C# /.NET, Go
> Пример ответа
Замыкание (closure) - это функция, которая "запоминает" окружение, в котором была создана, даже после того, как это окружение вышло из области видимости. В Java замыкания реализуются через лямбда-выражения и анонимные классы, которые захватывают переменные из внешнего контекста (при условии, что они effectively final). Например:
JAVApublic class ClosureExample {public static void main(String[] args) {int multiplier = 2; // effectively finalFunction<Integer, Integer> multiply = (x) -> x * multiplier;System.out.println(multiply.apply(5)); // 10}}
В C# замыкания естественно возникают в лямбда-выражениях и анонимных методах, захватывая переменные из внешнего метода:
CSHARPint multiplier = 2;Func<int, int> multiply = x => x * multiplier;Console.WriteLine(multiply(5)); // 10
В Go замыкания - это анонимные функции, которые ссылаются на переменные из внешней области:
GOmultiplier := 2multiply := func(x int) int {return x * multiplier}fmt.Println(multiply(5)) // 10
Ключевая особенность: замыкание хранит ссылку на переменную, а не её значение, что может приводить к неожиданностям при захвате переменной цикла (например, в Go или C# до версии 5.0). В Java это предотвращается требованием effectively final.
> Похожие задачи по Java
Работал ли ты с Cassandra, MongoDB, Redis, ElasticSearch, ClickHouse
Какой максимальный размер строки на входе и нужно ли его обрабатывать
Использовали ли Kotlin для написания автотестов
Есть ли в Kotlin аналог equals и hashCode и как это реализовано
> Похожие задачи по backend
Как использовать мьютексы для защиты мапы при параллельном доступе в Go
Почему при эвакуации данных в мапе Go возникает проблема с конкурентным доступом и race condition
Какие типы записей существуют в DNS
Какой статус у продукта
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью