gpt4 book ai didi

java - 为什么 String s1= "cat"和 String s2= new String ("cat"的哈希码相同?

转载 作者:行者123 更新时间:2023-12-02 04:54:06 25 4
gpt4 key购买 nike

程序:

 class JavaCode
{
public static void main (String[] args) throws java.lang.Exception
{
String s1 ="cat";
String s2 = new String("cat");
System.out.println(s1 == s2);
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
}
}

输出:

false
98262
98262

如果S1和S2指向不同的内存地址,那么它们的哈希码应该不同吗?请解释一下它们如何相同?

最佳答案

如果S1和S2指向不同的内存地址,那么它们的哈希码应该不同?

不,这不是哈希码的工作原理。如果两个对象相等,它们的哈希码也必须相等。它们位于“内存中的哪个位置”并不重要。

我建议阅读以下文章:http://www.javaworld.com/article/2074996/hashcode-and-equals-method-in-java-object---a-pragmatic-concept.html

关于java - 为什么 String s1= "cat"和 String s2= new String ("cat"的哈希码相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39278412/

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