Этот вопрос проверяет понимание механизма сохранения и передачи состояния объектов в Java.
Сериализация в Java — это процесс преобразования объекта в поток байтов. Такой поток можно сохранить в файл или передать по сети. Обратный процесс называется десериализацией. Для стандартной сериализации объект должен реализовывать интерфейс Serializable. Это позволяет восстановить объект в том же состоянии, в котором он был сохранён.
Сериализация — это процесс преобразования состояния объекта в байтовую форму для хранения или передачи.
Обратный процесс:
десериализация — восстановление объекта из байтов
Сериализация используется, когда необходимо:
сохранить объект на диск
передать объект по сети
закэшировать состояние
использовать RMI или распределённые системы
Для стандартного механизма достаточно:
class User implements Serializable {
private String name;
private int age;
}
Интерфейс Serializable:
маркерный
не содержит методов
сообщает JVM, что объект можно сериализовать
JVM:
сохраняет значения полей
фиксирует структуру объекта
использует serialVersionUID для совместимости
не все поля сериализуются автоматически
есть риски безопасности
изменение класса может сломать совместимость
Сериализация — удобный, но не всегда безопасный механизм. Его стоит использовать осознанно и понимать ограничения.