SerialVersionUIDとは何ですか?
serialVersionUIDは、Javaにおける静的定数で、シリアル化対象クラスのバージョン番号を表す。シリアル化可能なインターフェースを実装したクラスのオブジェクトは、バイトストリームとしてファイルに保存したり、ネットワーク経由で転送したりすることができる。復元時には、JVMはシリアル化対象クラスのバージョン番号を基に、適切に復元できるかを判断する。復元時のクラスバージョン番号とシリアル化時のバージョン番号が一致しない場合、InvalidClassException例外がスローされる。
serialVersionUID は 8 バイトの符号付き整数で、デフォルトではクラスの構造に応じて自動生成されます。この構造を修正すると (フィールドやメソッドの追加、削除、変更など) serialVersionUID の値も変わります。互換性を保つために、明示的に serialVersionUID に固定値を割り当てて、クラス構造が変化しても serialVersionUID が同じになるようにすることで、シリアライズおよびデシリアライズの互換性が維持されます。