10

行番号 3 の代わりに行番号 4 を実行する適切な時期はいつですか? それとも、完全に冗長な呼び出しですか?

1  Object o1 = new Object();

2  

3  int hcObj = o1.hashCode();

4  int hcSys = System.identityHashCode(o1);
4

2 に答える 2

3

プレーンObjectの場合、はい、冗長です。hashCodeただし、オーバーライドされた可能性のある型のインスタンスで、クラスが (参照の等価性に基づいて)デフォルトの実装を使用したい場合がありますhashCode

Grepcodeは、これらの呼び出しサイトをリストします。つまり、IdentityHashMap他のサイトも含めます。

于 2013-06-14T17:49:29.480 に答える