Java SE. Урок 32. Сериализация | Десериализация Объектов
Сериализация - это процесс преобразования объектов в потоки байтов для хранения.
Десериализация - процесс извлечение объекта из потока байтов.
Для сериализации объекта, его класс должен реализовывать либо интерфейс Serializable либо Externalizable. Поля класса также должны реализовывать данные интерфейсы, если они являются объектами. Интерфейс Serializable является интерфейсом-маркером-меткой, и не требует реализации каких либо методов. В случае с интерфейсом Externalizable необходимо будет переопределить методы readObject/writeObject
Значения полей помеченные спецификаторами transient и static не сериализуются (не сохраняются). Единственным исключением является поле:
private static final long serialVersionUID которое сериализуется вместе с объектом. Оно вычисляется по содержимому класса либо устанавливается программистом самостоятельно. После сериализации объекта стоит знать, что изменив содержимое класса объект восстановить не получиться.
При десериализации поля помеченные transient восстанавливаются по умолчанию. Если это ссылочные типы - то null.
При десериализации поля помеченные static восстанавливаются по умолчанию в случае отсутствия в области видимости объектов данного класса. В противном случае - принимают значения актуальные в данный момент.
Для записи объекта используется метод writeObject класса ObjectOutputStream, для чтения соответственно readObject класса ObjectInputStream.
Видео Java SE. Урок 32. Сериализация | Десериализация Объектов канала Follow the white rabbit
Десериализация - процесс извлечение объекта из потока байтов.
Для сериализации объекта, его класс должен реализовывать либо интерфейс Serializable либо Externalizable. Поля класса также должны реализовывать данные интерфейсы, если они являются объектами. Интерфейс Serializable является интерфейсом-маркером-меткой, и не требует реализации каких либо методов. В случае с интерфейсом Externalizable необходимо будет переопределить методы readObject/writeObject
Значения полей помеченные спецификаторами transient и static не сериализуются (не сохраняются). Единственным исключением является поле:
private static final long serialVersionUID которое сериализуется вместе с объектом. Оно вычисляется по содержимому класса либо устанавливается программистом самостоятельно. После сериализации объекта стоит знать, что изменив содержимое класса объект восстановить не получиться.
При десериализации поля помеченные transient восстанавливаются по умолчанию. Если это ссылочные типы - то null.
При десериализации поля помеченные static восстанавливаются по умолчанию в случае отсутствия в области видимости объектов данного класса. В противном случае - принимают значения актуальные в данный момент.
Для записи объекта используется метод writeObject класса ObjectOutputStream, для чтения соответственно readObject класса ObjectInputStream.
Видео Java SE. Урок 32. Сериализация | Десериализация Объектов канала Follow the white rabbit
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
Java serialization 🥣Java SE. Урок 31. Потоки ввода вывода (I/O)Выпуск 6. Сериализация - это несложноHow To Convert Java Object to/from JSON String In Jackson API | Java InspiresJava. Лямбда-выражения.Java для начинающих. Урок 45: Сериализация (часть 1).Java SE. Урок 30. Создание собственных исключений. Оператор throwAndroid Parcelable или Serializable? Павел Борзиков @AvitoTechJava SE. Урок 34. Коллекции ArrayList & LinkedListJava SE. Урок 1. История создания языка программирования JavaReactive Programming in Java by Venkat SubramaniamЧто такое Java Stream API / Стримы в Джава / Как писать меньше кода и делать меньше ошибокУрок по Java 46: СериализацияJava SE. Урок 7. Введение в классы и объектыВыпуск 9. Интерфейс Externalizable.Java Generics (Модуль 0. Урок 1. Знакомство с generic в Java).Java интерфейсы / Java для начинающих / Уроки JavaJSON парсинг методом GSON в Java на практике / JSON Parsing