gpt4 book ai didi

java - employee.hashCode() 与 employee.getClass().hashcode() 在 Java 中的对比

转载 作者:行者123 更新时间:2023-11-29 07:26:08 28 4
gpt4 key购买 nike

我有以下程序。

Employee employee1 = new Employee("Raghav1", 101);

Employee employee2 = new Employee("Raghav", 100);

// #1
System.out.println(employee1.hashCode() == employee2.hashCode());

// #2
System.out.println(employee1.getClass().hashCode() == employee2.getClass().hashCode());

语句 1 返回 false,因为两个员工对象不同,但为什么语句 2 返回 true

谁能解释一下以上说法的区别?

最佳答案

第一个语句比较两个雇员实例的哈希码。这可能是 hashCode() 方法的错误实现,因为看起来两个实例应该相等,因此应该具有相等的哈希码。

第二条语句获取每个实例的类并比较的哈希码。由于 employee1employee2 都是 Employee 的实例,它们都有相同的类,您只是比较对相同 的两次调用code>hashCode() 方法,它们必然会返回相同的值。

关于java - employee.hashCode() 与 employee.getClass().hashcode() 在 Java 中的对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52345376/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com