Встречается на собеседованиях • сегодня
В чем разница между Lambda и анонимным классом
Лямбда-выражения и анонимные классы в Java оба позволяют реализовывать функциональные интерфейсы, но есть ключевые отличия:
- Синтаксис - лямбды короче:
java
// Анонимный класс
Runnable r1 = new Runnable() {
@Override
public void run() {
System.out.println("Hello");
}
};
// Лямбда
Runnable r2 = () -> System.out.println("Hello");
text
2. **Область видимости** - лямбда видит final/effectively final переменные из внешнего контекста, а анонимный класс создает свою область видимости.
3. **Производительность** - лямбда не создает новый .class файл при компиляции, в отличие от анонимного класса.
4. **Ключевое слово this** - в лямбде this ссылается на внешний класс, в анонимном классе - на сам анонимный класс.
5. **Ограничения** - лямбды работают только с функциональными интерфейсами (один абстрактный метод), а анонимные классы могут реализовывать любые интерфейсы/классы.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы