Serializable — это маркер-интерфейс, который позволяет автоматически сериализовать объекты с опциональной настройкой. Externalizable — это обычный интерфейс, который требует явной реализации логики сериализации.
Serializable предоставляет два варианта:
writeObject() и readObject()Externalizable требует обязательной реализации:
writeExternal()readExternal()Serializable:
serialVersionUID опциональный (генерируется автоматически, если не определён)Externalizable:
readExternal() и writeExternal()| Аспект | Serializable | Externalizable |
|---|---|---|
| Маркер-интерфейс | Да | Нет |
| Реализация методов | Опциональная | Обязательная |
| Поведение по умолчанию | Автоматическое | Отсутствует |
| Конструктор требуется | Нет | Да (публичный без параметров) |
| Настройка | Опциональная | Обязательная |
Выбирай Serializable для простых объектов, когда стандартной сериализации достаточно или тебе нужна минимальная настройка. Выбирай Externalizable, когда тебе нужен детальный контроль над сериализацией, нужно оптимизировать производительность или работать со сложными графами объектов.
Serializable — это маркерный интерфейс, который делает сериализацию объектов автоматической, а Externalizable — это не-маркерный интерфейс, который требует явной реализации методов writeExternal() и readExternal().
Новый — ещё не проверен сообществом
Вы