Обложка канала

Java библиотека

12847 @javalib

Всё для Java разработчиков.

Java библиотека

4 года назад
Открыть в
Опишите процесс сериализации/десериализации с использованием Serializable. При использовании Serializable применяется алгоритм сериализации, который с помощью рефлексии (Reflection API) выполняет: • запись в поток метаданных о классе, ассоциированном с объектом (имя класса, идентификатор SerialVersionUID, идентификаторы полей класса); • рекурсивную запись в поток описания суперклассов до класса java.lang.Object (не включительно); • запись примитивных значений полей сериализуемого экземпляра, начиная с полей самого верхнего суперкласса; • рекурсивную запись объектов, которые являются полями сериализуемого объекта. При этом ранее сериализованные объекты повторно не сериализуются, что позволяет алгоритму корректно работать с циклическими ссылками. Для выполнения десериализации под объект выделяется память, после чего его поля заполняются значениями из потока. Конструктор объекта при этом не вызывается. Однако при десериализации будет вызван конструктор без параметров родительского несериализуемого класса, а его отсутствие повлечёт ошибку десериализации.