Что такое сериализация мы уже проходили в разделе потоки ввода/вывода, но повторим, так как это основы сериализации.
ObjectOutputStream
– сериалиация. Для сохранения копии объекта в поток (в файл, например) для восстановления его потом (десереализации – ObjectInputStream
)
Пример программы:
Вывод:

Как видим, объект был полностью успешно восстановлен.
Сериализуемый объект должен имплементировать Serializable.
Все его поля тоже должны быть Serializable
. Это важно. Простые типы типа int char и т.д. сериализуються и так, сложные же типы должны расширять Serializable.
Table of Contents
Transient в Java
Ключевое слово transient в Java: как исключить поля из сериализации. Практическое руководство по работе с несериализуемыми данными.
Контроль совместимости классов с помощью SerialVersionUID
Используйте SerialVersionUID в Java для контроля версий классов при сериализации. Решение проблем совместимости при изменении структуры класса.
Сериализация Singleton без утраты его сути
Узнайте, как сохранить Singleton при сериализации в Java. Метод readResolve гарантирует единственность экземпляра после десериализации.