说明:
1)上述函数表示返回调用函数对象的哈希码值,默认情况下,该方法会根据对象的地址来计算。哈希码值是根据哈希算法计算出来的一个值,这个值和地址值有关。但是,不是实际的地址值;
2)不同对象的hashCode 值一般来说不会相同,但是,同一个对象的hashCode值肯定相同;
package com.web;
public class Test55 {
public static void main(String[] args) {
Student s1 = new Student("wang1", 11);
Student s2 = new Student("wang2", 12);
//s1,s3指向同一个对象,哈希值相同
Student s3 = s1;
System.out.println("s1.hashCode() = " + s1.hashCode());//1580066828
System.out.println("s2.hashCode() = " + s2.hashCode());//491044090
System.out.println("s3.hashCode() = " + s3.hashCode());//1580066828
//虽然和s1内容一样,但是是不同的对象
Student s4 = new Student("wang1",11);
System.out.println(s1==s4);//false
System.out.println(s1.equals(s3));//true
System.out.println("s4.hashCode() = " + s4.hashCode());//644117698
}
}