哈希值
- 哈希值:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值
- Object类中有一个方法可以获取对象的哈希值
public int hashCode() 返回对象的哈希值
对象的哈希值的特点:
- 同一个对象多次调用hashCode()方法的哈希值相同
- 不同对象调动的hashCode()方法哈希值不同,但是可以根据子类重写hashCode()方法让其相同
代码讲解
图:注意Student类是默认继承Object类的,具备重写方法功能
Demo类
package CCom.Cnn;
public class Demo {
public static void main(String[] args) {
Student s = new Student("沸羊羊",21);
Student s2 = new Student("美羊羊",22);
//同一个对象多次调用hashCode()方法的哈希值相同
System.out.println("蔡".hashCode());
System.out.println("蔡".hashCode());
System.out.println("=================================");
//不同对象调动的hashCode()方法哈希值不同
System.out.println("蔡".hashCode());
System.out.println("菜".hashCode());
System.out.println("=================================");
//重写后,值都一样
System.out.println(s.hashCode());
System.out.println(s2.hashCode());
}
}
Student类
package CCom.Cnn;
public class Student {
//默认继承Object类,所以是可以重写父类方法的
private String name;
private int Age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
Age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return Age;
}
public void setAge(int age) {
Age = age;
}
@Override
public int hashCode() {
return 0;
}
}
输出的内容:
34081
34081
=================================
34081
33756
=================================
0
0