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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Примитивные стримы и стоимость упаковки (boxing)

    JAVA 25 SELF
    33 уровень,0 лекция
    В лекции разберём, почему обычные стримы коллекций чисел ( Stream<Integer>, Stream<Double>) могут быть неэффективны из‑за упаковки/распаковки (boxing/unboxing), и как примитивные стримы — IntStream, LongStream, DoubleStream — помогают этого избежать. Рассмотрим преобразования mapToInt/ boxed(), агрегирующие операции ( sum(), average(), summaryStatistics()), безопасные результаты с OptionalInt/ OptionalDouble, а также где оптимизация реально даёт прирост и как измерять эффект с JMH.
    Открыта
  • Ленивая обработка (lazy evaluation) в Stream API

    JAVA 25 SELF
    33 уровень,1 лекция
    В лекции разбираем, как работает ленивая обработка в Stream API: чем отличаются промежуточные и терминальные операции, почему вычисления стартуют только после вызова терминала, какие преимущества дают поэлементная обработка и «короткие вычисления». Покажем цепочки с filter, map, peek, findFirst, forEach, визуализируем прохождение элементов и разберём типичные ошибки и рекомендации по эффективному порядку операций.
    Открыта
  • Неизменяемые коллекции: Collections.unmodifiable

    JAVA 25 SELF
    33 уровень,2 лекция
    В лекции разбираем, как защитить данные с помощью неизменяемых обёрток Collections.unmodifiableList, unmodifiableSet, unmodifiableMap, чем отличается «поверхностная» неизменяемость от «глубокой», когда и зачем возвращать обёртки из методов, а также современные альтернативы List.of/ Set.of/ Map.of. Поговорим о типичных ошибках (например, ожидание глубокой неизменяемости или работа с null) и о том, почему попытки модификации завершаются UnsupportedOperationException.
    Открыта
  • Spliterator и параллельные стримы

    JAVA 25 SELF
    33 уровень,3 лекция
    В лекции разбираем, что такое Spliterator, как он позволяет не только перебирать элементы, но и делить источник данных на части с помощью trySplit(), как на базе этого работают параллельные стримы через parallelStream() и общий пул ForkJoinPool. Показаны ключевые методы ( tryAdvance, estimateSize, characteristics), типичные характеристики ( ORDERED, SIZED, CONCURRENT и др.), практические примеры, мермаид-схема и частые ошибки при использовании параллельных стримов.
    Открыта
  • Собственные Collector и Spliterator

    JAVA 25 SELF
    33 уровень,4 лекция
    В лекции разбираем, как писать собственные коллектора для Stream API через Collector и когда это действительно оправдано, а также как реализовать свой Spliterator для эффективного последовательного и параллельного обхода данных. Пошагово рассмотрим компоненты коллектора ( supplier, accumulator, combiner, finisher, characteristics), примеры для мульти-карт и топ-N, стратегии trySplit, а также корректную установку характеристик ( ORDERED, SIZED, SUBSIZED и др.).
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush