hashcode方法返回该对象的哈希码值
- 在应用程序的执行期间,对这同一个对象调用多次,hashCode方法都必须始终如一地返回同一个整数。在同一个应用程序的多次执行过程中,每次执行所返回的整数可以不一致。
- 如果两个对象根据equal(Object)方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法都必须返回同样的整数结果。
- 如果两个对象根据equals(Object)方法比较是不相等的,那么调用这两个对象中任意一个对象的hashCode方法,则返回的整数结果可以相等也可以不等。但是程序员应该知道,给不相等的对象产生截然不同的整数结果,有可能提高散列表的性能。
哈希码产生的依据:哈希码并不是完全唯一的,它是一种算法,让同一个类的对象按照自己不同的特征尽量的有不同的哈希码,但不表示不同的对象哈希码完全不同。也有相同的情况,看程序员如何写哈希码的算法。
再归纳一下就是hashCode是用于查询使用的,而equals是用于比较两个对象是否相等的。
Object的hashCode()返回的不是对象的内存地址。
System.out.println("1".hashCode() + "," + "1".hashCode() + "," + "2".hashCode());
System.out.println("1" == "1");
System.out.println("1".hashCode() == "1".hashCode());