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

Лекции

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

    JAVA 25 SELF
    45 уровень,0 лекция
    В лекции разбираем риски бинарной сериализации в Java: почему десериализация из недоверенных источников опасна (цепочки «gadget chain», RCE), чем грозят специальные методы вроде readObject и readResolve, и как защищаться (whitelisting, отказ в пользу JSON/ XML, безопасные библиотеки вроде Jackson). Подробно рассмотрим совместимость версий классов и роль поля serialVersionUID, поведение при InvalidClassException, ограничения transient/ static, производительность, а также best practices и типичные ошибки.
    Открыта
  • Сериализация generics-коллекций: особенности

    JAVA 25 SELF
    45 уровень,1 лекция
    Разбираем, как стирание типов ( type erasure) влияет на сериализацию generics-коллекций: почему во время выполнения List<String> и List<Integer> — один и тот же ArrayList, что именно записывается и читается через ObjectOutputStream/ ObjectInputStream, откуда берутся ClassCastException и предупреждения об unchecked-кастах. Покажем примеры с вложенными коллекциями, Map/ Set, упомянем Gson/ Jackson, и сформулируем практики безопасной десериализации.
    Открыта
  • Совместимость и обратная совместимость (backward compatibility) при сериализации

    JAVA 25 SELF
    45 уровень,2 лекция
    Разбираем, как эволюционировать сериализуемые классы и не сломать данные: зачем фиксировать serialVersionUID, как JVM проверяет совместимость, какие изменения безопасны (добавление/удаление полей), а какие критичны (смена типа, перенос класса в пакет). Покажем роль transient/ static, приёмы кастомной сериализации через writeObject/ readObject, отличие бинарной сериализации от XML/JSON, стратегии обеспечения совместимости и типичные ошибки (например, InvalidClassException).
    Открыта
  • Миграция и версионирование сериализованных данных

    JAVA 25 SELF
    45 уровень,3 лекция
    Как безопасно эволюционировать сериализуемые классы в продакшене: что будет при изменении полей и типов, как работает версия класса через serialVersionUID, когда её менять, а когда оставлять прежней, как применять «ленивую» миграцию через readObject/ readFields и «in-place» конвертацию, и какие есть advanced-приёмы вроде ObjectInputStream.readClassDescriptor(). Разберём полный практический сценарий с двумя версиями класса и типичными ошибками, включая ловушки InvalidClassException.
    Открыта
  • Компрессия и профилирование сериализации

    JAVA 25 SELF
    45 уровень,4 лекция
    Как уменьшить размер и ускорить сериализацию объектов в Java: исключаем лишние поля с transient, берём полный контроль через Externalizable, применяем потоковую компрессию ( GZIPOutputStream, ZipOutputStream), ускоряем I/O буферизацией ( BufferedOutputStream, BufferedInputStream) и быстрым копированием через FileChannel. transferTo. Для оценки производительности используем как быстрые замеры через System. nanoTime(), так и надёжные микробенчмарки на JMH. Завершим мини‑экспериментом и разбором типичных ошибок.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush