Java的hashcode方法到底是什么
首先我们知道Java的所有类的基类是Object,而hashcode是Object类的方法,所以Java类都具有hashcode方法
首先给出我的结论:Java通过hashcode方法获取的并不是地址而是通过地址转换的Integer类型整数值
接下来通过Object源码来看(为什么贴上面getClass()方法介绍,个人觉得上面的介绍更加明白,hashcode大多介绍==和equals)
上面英语翻译大概就是:Object类的hashcode方法根据不同的对象返回不同的整数值,通常是地址转换的整数值,但不是java实现的(native方法,表示调用的C/C++的方法)
2.但是为什么说是通过地址转换的,不是地址呢,因为大家知道不同对象可能具有相同的hashcode值,那么思考一下如果hashcode就是地址的话两个对象的hashcode值是肯定不会相同的
最后额外得出
相同对象hashcode值肯定相同
hashcode值相同的不一定是同一对象