#java #serialization #deserialization #objectoutputstream
Вопрос:
Как jvm-получатель, выполняющий десериализацию с использованием ObjectInputStream, узнает, какой идентификатор сериализации использовался при сериализации с использованием ObjectOutputStream. Учитывая, что отправитель и получатель присутствуют на 2 разных серверах.
Ответ №1:
Потому что при записи объекта в ObjectOutputStream
логику сериализации записывается не только фактическое имя класса, но и serialVersionUid
в выходной поток.
Поэтому ObjectInputStream
(при десериализации) можно прочитать имя класса считываемого объекта, а также serialVersionUid
название класса.