serialVersionUIDのようにハッシュコード

TCK:

私はJVMによって提供さserialVersionUIDのデフォルトは、オブジェクトのハッシュコードであることを記事で読みました。私たちは、クラス内のhashCodeメソッドをオーバーライドしない場合は、通常、ハッシュコードは、オブジェクトのメモリアドレスであるとして、どのようにハッシュコードをdeserializatioの間に計算されるのですか?

スティーブンC:

私は、デフォルトという記事で読んserialVersionUidJVMが提供するオブジェクトのハッシュコードです。

それは間違っています。(記事は間違っている、またはあなたが読み違えどちらか/それを誤解。)

直列化可能クラスのデフォルトシリアルバージョンUIDは、hashCodeのは全く無関係です。

defautシリアルバージョンUIDを生成するためのアルゴリズムは、ここで説明されています。

基本的には、クラス名、修飾子、インタフェース名、およびそのフィールド、コンストラクタとメソッドのシグネチャからSHA-1ハッシュを生成します。そして、それはハッシュの最初の8つのバイトを取り、にそれらを組み立てますlong

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=234805&siteId=1