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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Сериализация вложенных объектов: особенности

    JAVA 25 SELF
    44 уровень,0 лекция
    В этой лекции разбираем, как Java выполняет глубокую сериализацию графа объектов: что происходит с полями-ссылками, почему все вложенные объекты должны реализовать Serializable, как избежать NotSerializableException, и в каких случаях помогает модификатор transient. На примерах покажем сериализацию/десериализацию объектов с вложенностью, коллекциями и циклическими ссылками, а также разберём типичные ошибки, связанные с serialVersionUID и большими графами объектов.
    Открыта
  • Вложенные и иерархические объекты: сериализация графов

    JAVA 25 SELF
    44 уровень,1 лекция
    Как Java сериализует сложные структуры данных: от вложенных коллекций и иерархий наследования до циклических графов объектов. Разберём, почему работает сериализация Map<String, List<Book>>, как сохраняются реальные типы потомков в List<Animal>, что делает механизм ссылок при циклах, и какие подводные камни встречаются. Поговорим о роли ObjectOutputStream/ ObjectInputStream, методах writeObject/ readObject, поле serialVersionUID и модификаторе transient.
    Открыта
  • Проблема циклических ссылок: detection, обход

    JAVA 25 SELF
    44 уровень,2 лекция
    Разбираем, что такое циклические ссылки в объектных графах, чем они опасны для сериализации и как с ними справляться. Показано, как стандартные потоки Java — ObjectOutputStream/ ObjectInputStream — автоматически отслеживают уже встреченные объекты и пишут ссылки (handles), предотвращая StackOverflowError. Разберём подводные камни кастомной сериализации ( writeObject/ readObject, defaultWriteObject/ defaultReadObject), а также стратегии обхода циклов при JSON: аннотации @JsonIdentityInfo, @JsonBackReference/ @JsonManagedReference, исключение полей через transient и использование идентификаторов.
    Открыта
  • Идентичность объектов при бинарной сериализации

    JAVA 25 SELF
    44 уровень,3 лекция
    Как Java сохраняет и восстанавливает идентичность объектов при бинарной сериализации: почему эквивалентность через a. equals( b) не равна идентичности ( a == b), как ObjectOutputStream/ ObjectInputStream отслеживают граф объектов и пишут «повторные ссылки» вместо дублей, почему это корректно работает при циклах, и как методы writeReplace() и readResolve() могут повлиять на итоговую идентичность. Разбор с примерами: циклы, общие ссылки, практика и типичные ошибки.
    Открыта
  • Разбор типичных ошибок при сериализации коллекций

    JAVA 25 SELF
    44 уровень,4 лекция
    В этой лекции разбираем самые частые проблемы при сериализации коллекций: от java.io.NotSerializableException (когда элементы не реализуют Serializable) и ловушек дженериков с ClassCastException до несовместимости версий классов через serialVersionUID. Поговорим о нюансах неизменяемых коллекций ( List.of(), Set.of(), Map.of()), поведении полей transient/ static, а также о производительности и размере файлов, где помогут потоковая запись и сжатие ( GZIPOutputStream). Вы получите практические советы, примеры кода и рекомендации по безопасной десериализации ( readObject/ writeObject).
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush