Javaのオブジェクトの参照と同じオブジェクトのハッシュコード値の違いは何ですか?オブジェクト参照とオブジェクトハッシュコードの差異
答えて
完全に2つの異なる概念です。上記の例で
Cat oldCat = new Cat();
Cat newCat = new Cat();
Cat oldCatRef = oldCat;
、oldCat
とoldCatRef
が同じオブジェクトへの参照です。それらは同じオブジェクトを参照するので、それらのハッシュコードは等しくなります。
しかし、oldCat
とnewCat
は同じオブジェクトを参照していません。それらは2つの異なるオブジェクトへの参照です。しかし、彼らはその実装に基づいて同じhashCode
を持っているかもしれません。 hashCode
は、単にオーバーライドできるObject
クラスのメソッドです。 (PeterJから)
EDIT: oldCat.equals(newCat)は、2つのハッシュコードが同じでなければならない場合、JavaSE6オブジェクトの仕様によります。それは良いプログラミングは、その契約によって従うことです
あなたはおそらく同様に、この質問に対する答えをチェックしたい:オブジェクトのハッシュコードと参照またはアドレスとの間
difference between hash code and reference or address of an object?
オブジェクトへの参照は、それだけです。オブジェクトへの参照。
オブジェクトのハッシュコードは、実装によってはさまざまなものがありますhashCode()
メソッドの結果です。デフォルトhashCode()
:
は、典型的には、整数にオブジェクトの内部アドレスを変換することによって実現されるが、この実装技術は、2つの異なるオブジェクトが同じ
hashCode
を持つことができるのJavaTMプログラミング言語
64ビットJVMでは、参照は通常8バイトを使用し、hashCode()は32ビットのみです。 –
によって必要とされません。 reference
は、hashCode
が便利な計算属性であるオブジェクトへのユニークなポインタです。
- 1. オブジェクト参照変数の型が参照するオブジェクトの型と異なるJavaのメカニズムがありますか?
- 2. 参照先のスレッドとオブジェクト
- 3. Javaのオブジェクトと参照
- 4. ヒープと参照のオブジェクト
- 5. 異なるスレッド内のManagedObjectContext - 異なるオブジェクト参照
- 6. HQLのnull参照オブジェクトの参照プロパティ
- 7. Java:元のオブジェクト参照を含むオブジェクト内のオブジェクト参照
- 8. Socket.ioとKeystone - 参照socket.ioオブジェクト
- 9. オブジェクト作成の差異
- 10. C++オブジェクト参照
- 11. オブジェクト参照が
- 12. オブジェクト参照が
- 13. オブジェクト参照コンパイルエラー
- 14. オプションのオブジェクト参照
- 15. bottomNavigation:ReselectedListener:nullのオブジェクト参照
- 16. コールバックメソッドのオブジェクト参照
- 17. オブジェクト対ドキュメントストレージ(データベース)=差異(nosql)?
- 18. JavaScriptのプリミティブとオブジェクトの参照
- 19. オブジェクト参照がレイザー
- 20. Location.getLongitude()nullオブジェクト参照
- 21. List参照型オブジェクト
- 22. SVN2Gitオブジェクト参照エラー
- 23. 「nullオブジェクト参照」エラー
- 24. SSIS - インクリメンタルロード - 参照オブジェクト
- 25. nullオブジェクト参照エラースレッド
- 26. Visual Basic 6.0値渡し参照差分
- 27. Jackson JSONオブジェクト参照をJSON.Netオブジェクト参照に変換する
- 28. 異なる配列のオブジェクトを参照する配列
- 29. オブジェクト型と参照型の違い
- 30. 文字列としてのオブジェクト参照?
[違いは? ](http://stackoverflow.com/questions/3700595/difference-between-hash-code-and-reference-or-address-of-an-object)が元々Java MEを求められていたとしても同じです。 –