说明:
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 } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)