java – 使用System.identityHashCode(obj) – 何时?为什么?

前端之家收集整理的这篇文章主要介绍了java – 使用System.identityHashCode(obj) – 何时?为什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
什么时候做一个合适的时间来做第4行而不是第3行?还是他们完全重复调用
1  Object o1 = new Object();

2  

3  int hcObj = o1.hashCode();

4  int hcSys = System.identityHashCode(o1);

解决方法

有时您可能想要创建一组可区分的对象.其中一些对象可能彼此相等,但您仍然希望引用所有这些对象,只能抛出真正重复的引用.你可能会这样做,因为equals实现不是你感兴趣的(一些类覆盖等于,当你真的不想要它们)或者因为你实际上只是想计算单独的实例等

要做到这一点(例如某种哈希表的支持),您需要基于身份而不是等于的哈希码,这正是IdentityHashCode为您提供的.它很少有用,但它仍然有时可以方便.

猜你在找的Java相关文章