public class Test {
public static void main(String args[]) {
int i = 10;
Integer a = new Integer(i);
System.out.println(a); //tostring method overriden
System.out.println(a.hashCode());
}
}
Run Code Online (Sandbox Code Playgroud)
产量:
10
10
现在我的问题是为什么hashCode()在这种情况下覆盖方法.如果我想在上面的代码中找到包装类对象的对象引用.我该怎么做?
在您的情况下对整数的对象引用是a.与C不同,在Java中,您无法获得指向对象的引用指针.在hashCode不用于识别在存储器中的对象的地址位置.
从hashCode API,
返回对象的哈希码值.支持此方法的好处是哈希表,例如HashMap提供的哈希表.
事实证明,hashCode整数的最有效值是值本身.
如果您仍想获取对象的原始哈希值,我建议使用该System.identityHashCode方法.
System.identityHashCode(a)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |