JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Использование лямбда в коллекциях и стримах

    JAVA 25 SELF
    48 уровень,1 лекция
    Практика лямбда-выражений в коллекциях и Stream API: как заменить анонимные классы компактными лямбдами, пользоваться методами коллекций ( forEach, removeIf, sort, replaceAll) и строить конвейеры обработки данных ( stream → filter → map → sorted → collect). Сравним с анонимными классами, обсудим «эффективно final» переменные, приведём таблицу основных операций и разберём типичные ошибки.
    Открыта
  • Преимущества и недостатки лямбда-выражений

    JAVA 25 SELF
    48 уровень,2 лекция
    В лекции разбираем, зачем Java получила лямбда-выражения: краткость и читаемость, передача поведения как параметра, интеграция с коллекциями и Stream API ( filter, map, forEach), захват «эффективно» final переменных и удобная запись колбэков через оператор ->. Параллельно рассмотрим подводные камни: отладка длинных цепочек, неоднозначность перегрузок ( Runnable vs Callable), ограничения замыканий, сериализация и вложенные лямбды. В конце — практические рекомендации, когда использовать лямбды и разбор типичных ошибок.
    Открыта
  • Замыкания (closures) в Java: особенности

    JAVA 25 SELF
    48 уровень,3 лекция
    В лекции разбираем, что такое замыкание и как оно работает в Java: как лямбды и анонимные классы «захватывают» внешние переменные, почему локальные переменные должны быть final или эффективно final, чем захват локальных переменных отличается от обращения к полям класса, и как ведёт себя this в лямбдах и анонимных классах. Покажем фабрики функций с IntSupplier, разберём внутреннюю реализацию захвата и типичные ошибки (например, сообщение компилятора Variable used in lambda expression should be final or effectively final).
    Открыта
  • Анонимные классы: отличие от лямбда, примеры

    JAVA 25 SELF
    48 уровень,4 лекция
    В лекции разбираем, что такое анонимный класс в Java, чем он отличается от лямбда-выражения: синтаксис, возможности (поля, дополнительные методы, переопределение toString/ equals), область видимости и поведение this, захват переменных (только final/«эффективно final»). Показаны практические примеры с Runnable, Comparator, Predicate, а также рекомендации — когда выбирать лямбду, а когда анонимный класс.
    Открыта
  • Функциональные интерфейсы: Predicate, Consumer, Supplier, Function

    JAVA 25 SELF
    49 уровень,0 лекция
    Разбираем ключевые функциональные интерфейсы из пакета java.util.function: Predicate, Consumer, Supplier, Function — что они принимают/возвращают и где применяются в Stream API ( filter, map, forEach, generate). Вспоминаем правило «ровно один абстрактный метод» и аннотацию @FunctionalInterface, пишем лямбды, сравниваем с анонимными классами, отрабатываем на примере с классом User и разбираем типичные ошибки выбора между Predicate/ Function и др.
    Открыта
  • Композиция функций: compose, andThen

    JAVA 25 SELF
    49 уровень,1 лекция
    Эта лекция — о том, как собирать конвейеры преобразований из маленьких функций с помощью Function и его методов compose и andThen. Разберём порядок применения, совместимость типов, примеры с Predicate ( and, or, negate), Consumer ( andThen), построим практические пайплайны и обсудим типичные ошибки: перепутанный порядок ( f.compose(g) vs f.andThen(g)), несогласованные типы и «лапша» из цепочек. Вы научитесь применять apply, test, accept и строить читабельные, повторно используемые преобразования.
    Открыта
  • Передача функций как параметров: примеры

    JAVA 25 SELF
    49 уровень,2 лекция
    Практическое введение в передачу поведения в Java: как использовать лямбда-выражения ( ->) и ссылки на методы ( ::) вместе со Stream API и коллекциями. Разберём стандартные функциональные интерфейсы из java.util.function — Comparator, Predicate, Function, Consumer, Supplier — научимся писать универсальные методы, принимать поведение как параметры и избегать типичных ошибок. Потренируемся на примерах со Stream, Optional и собственных утилитах обработки списков.
    Открыта
  • Функциональный стиль со Stream API

    JAVA 25 SELF
    49 уровень,3 лекция
    Переходим от императивных циклов к декларативным пайплайнам обработки данных с Stream API: разбираем промежуточные и терминальные операции, ленивость вычислений, сбор результатов через toList()/ collect, ключевые операции map, filter, sorted, flatMap, reduce, а также проверки anyMatch/ allMatch/ noneMatch. Сравним императивный и функциональный стиль, разберём практические примеры и типичные ошибки, включая неуместный forEach при сборе коллекций и преждевременный parallelStream().
    Открыта
  • Разбор ошибок при функциональном программировании

    JAVA 25 SELF
    49 уровень,4 лекция
    10 самых частых ошибок при работе с лямбдами и Stream API в Java: захват переменных ( final/ effectively final), поведение this в лямбдах, сайд‑эффекты и параллелизм ( parallelStream()), вывод типов и generics, работа с null и Optional, композиция функций ( compose/ andThen), а также checked‑исключения (например, IOException). Показываем безопасные приёмы: фильтрация Objects::nonNull, терминальные операции ( sum(), collect(...)), потокобезопасные коллекции и декомпозицию длинных цепочек.
    Открыта
  • Слушатели (Listeners) и интерфейсы событий

    JAVA 25 SELF
    50 уровень,0 лекция
    Как в Java устроена событийная модель: источник генерирует событие, а подписанные слушатели получают уведомление и реагируют. Разберём ключевые интерфейсы слушателей из Swing — ActionListener, MouseListener, KeyListener, ChangeListener, DocumentListener — и покажем, как регистрировать обработчики через addActionListener и реализовывать метод actionPerformed. Потренируемся подключать слушатели к JButton/ JFrame, сравним анонимные классы и лямбда-записи, обсудим типичные ошибки и практические советы.
    Открыта
  • События в Swing и AWT: основы, примеры

    JAVA 25 SELF
    50 уровень,1 лекция
    Краткое практическое введение в модель событий AWT/ Swing: создаём кнопку JButton, подписываем слушателя через addActionListener, обрабатываем в actionPerformed. Разбираем анонимные классы и лямбда-выражения, популярные слушатели ( MouseListener/ MouseAdapter, KeyAdapter, DocumentListener), пишем мини-приложение на базе JFrame, JButton, JLabel, смотрим на последовательность вызовов и типичные ошибки (тяжёлая работа в обработчике, финальность переменных в лямбдах, забытый addActionListener, удаление слушателей, использование SwingWorker).
    Открыта
  • Создание и обработка собственных событий

    JAVA 25 SELF
    50 уровень,2 лекция
    В лекции разбираем, как спроектировать собственные события в Java: создаём класс события на базе java.util.EventObject, описываем интерфейс слушателя через java.util.EventListener, добавляем механизм подписки/отписки ( add...Listener/ remove...Listener) и уведомления ( fire...). Посмотрим практику на примерах DataLoader и счётчика, обсудим обработчики на анонимных классах и лямбда-выражениях, а также разберём типичные ошибки (исключения в слушателях, утечки памяти, ConcurrentModificationException).
    Открыта
  • 1
  • ...
  • 21
  • 22
  • 23
  • 24
  • 25
  • ...
  • 57
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2025 JavaRush
MastercardVisa
"Программистами не рождаются" © 2025 JavaRush