哈希值是JDK根据对象地址或字符串或数字算出来的int类型的数值 Object类中有hashCode方法可以返回对象的哈希值

public class homework2 {
    public static void main(String[] args) {
        Student s1=new Student("张三",20);
        Student s2=new Student("李四",25);
//同一个对象返回的哈希值是相同的,不同对象返回的哈希值是不同的
        System.out.println(s1.hashCode());//1324119927
        System.out.println(s1.hashCode());//1324119927
        System.out.println(s2.hashCode());//990368553
//但是可以通过重写hashCode方法来实现哈希值一样
        System.out.println(s1.hashCode());//0
        System.out.println(s2.hashCode());//0
//不同字符串的哈希值也不同
        System.out.println("hello".hashCode());//99162322
        System.out.println("world".hashCode());//113318802
//很显然“通话”和“重地”的hashCde() 相同
        System.out.println("重地".hashCode());//1179395
        System.out.println("通话".hashCode());//1179395

    }
}
public class Student {
    private int age;
    private String name;
    public  Student(){}
    public Student(String name,int age) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public int hashCode(){
        return 0;
    }
}


版权声明:本文为qq_57907966原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。