gpt4 book ai didi

java - 对象相同但输出不同?请帮忙

转载 作者:行者123 更新时间:2023-12-01 06:59:51 24 4
gpt4 key购买 nike

Possible Duplicate:
String equality vs equality of location

public class AboutStrings{
public static void main(String args[]){
String s1="hello";
String s2="hel";
String s3="lo";
String s4=s2+s3;

//to know the hash codes of s1,s4.

System.out.println(s1.hashCode());
System.out.println(s4.hashCode());

// these two s1 and s4 are having same hashcodes.

if(s1==s4){
System.out.println("s1 and s4 are same.");
}else
System.out.println("s1 and s4 are not same.");
}
}

在上面的例子中,即使 s1 和 s4 指的是相同的对象(具有相同的哈希码),

打印的 s1 和 s4 不一样。

谁能详细解释一下为什么会这样?

最佳答案

仅仅因为两个对象具有相同的哈希码就意味着它们是相同对象(您正在使用 == 检查对象身份!)。

您可能想调用

s1.equals(s4)

相反 - 但即便如此,两者也可能具有相同的哈希码不相等:两个相等的对象必须具有相同的哈希码(才能正常工作)在集合等中),但反之则不然。

关于java - 对象相同但输出不同?请帮忙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1740437/

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