TCK:
私はJVMによって提供さserialVersionUIDのデフォルトは、オブジェクトのハッシュコードであることを記事で読みました。私たちは、クラス内のhashCodeメソッドをオーバーライドしない場合は、通常、ハッシュコードは、オブジェクトのメモリアドレスであるとして、どのようにハッシュコードをdeserializatioの間に計算されるのですか?
スティーブンC:
私は、デフォルトという記事で読ん
serialVersionUid
JVMが提供するオブジェクトのハッシュコードです。
それは間違っています。(記事は間違っている、またはあなたが読み違えどちらか/それを誤解。)
直列化可能クラスのデフォルトシリアルバージョンUIDは、hashCodeのは全く無関係です。
defautシリアルバージョンUIDを生成するためのアルゴリズムは、ここで説明されています。
基本的には、クラス名、修飾子、インタフェース名、およびそのフィールド、コンストラクタとメソッドのシグネチャからSHA-1ハッシュを生成します。そして、それはハッシュの最初の8つのバイトを取り、にそれらを組み立てますlong
。