hashCode方法
注意:C要大写
作用:返回对象的哈希码值(可以当作是地址,真实的地址在 Java 虚拟机上),支持此方法是为了提高哈希表的性能
底层实现:实际上,由Object类定义的hashCode方法确实会针对不同的对象返回不同的整数(十进制数)(这一般通过将该对象的内部地址转换成一个整数来实现,但是 Java 变成语言不需要这种实现技巧)
几点说明
-
作用:可以提高具有哈希结构的容器的效率
-
两个引用,如果指向同一个对象,哈希值一样;如果指向不同对象,哈希值不一样
-
哈希值主要是根据地址号来的,不能完全将哈希值等价于地址
代码示例
public class hashcode {
public static void main(String[] args) {
int[] arr = new int[5];
hashtest hashtest = new hashtest();
hashtest hashtest1 = new hashtest();
System.out.println("111".hashCode());
System.out.println("222".hashCode());
System.out.println(hashtest.hashCode());
System.out.println(hashtest1.hashCode());
System.out.println(arr.hashCode());
}
}
class hashtest{
}
48657
49650
1163157884
1956725890
356573597