статистик Java спецификации, чтоТот же идентификатор версии для всех классов?
сериализация во время выполнения ассоциирует с каждым сериализуемым классом а номер версии, называется serialVersionUID, который используется во время десериализации, чтобы убедиться в том, что отправитель и получатель сериализованного объекта, загруженные классы для этого объекта, которые совместимы с в отношении сериализации. Если приемник загрузил класс для объекта , у которого есть другой идентификатор serialVersionUID, чем у соответствующего класса отправителя , тогда десериализация приведет к InvalidClassException.
enter code here
Но если я задаю все классы одинаковый серийный номер версии следующим
static final long serialVersionUID = 1L;
Теперь все мои классы будут иметь такой же serialversionUID, и это никогда не приведет к InvalidclassException.
Я знаю, что мы даем его явно, чтобы его значение оставалось постоянным в разных реализациях JVM.
Пожалуйста, дайте мне знать, что такое использование одинакового идентификатора для всех классов и что произойдет, если мы изменим класс между сериализацией и десериализацией?
Это действительно используется и полезно в среде кластера, где по умолчанию 'serialVersionUID' будет разные (по умолчанию), если каждый узел в кластере должен самостоятельно создавать программное обеспечение или узлы, необходимые для работы с несколькими версиями программного обеспечения. –