gpt4 book ai didi

java - 如果java中两个字符串文字和字符串对象的哈希码相同,那么如果它们通过 == 进行比较,则发现 false。为什么?

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

在下面的代码中,s1 和 s3 的 HashCode 相等,但 s1==s3 返回 false,为什么?请澄清一下。这里s1,s2和s3包含相同的内容和HashCode。当运行下面的代码时,输​​出是

108274800

108274800

108274800

s1==s2

s1.equals(s2)

s1.equals(s3)

代码如下...

公共(public)类 StringTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

String s1="rahul";
String s2="rahul";
String s3=new String("rahul");
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
System.out.println(s3.hashCode());

if(s1==s2){

System.out.println("s1==s2");
}

if(s1==s3){

System.out.println("s1==s3");
}

if(s1.equals(s2)){

System.out.println("s1.equals(s2)");
}

if(s1.equals(s3)){

System.out.println("s1.equals(s3)");
}

}

}

最佳答案

== 仅比较引用类型,要比较对象或字符串,必须使用 s1.equals(s2)

关于java - 如果java中两个字符串文字和字符串对象的哈希码相同,那么如果它们通过 == 进行比较,则发现 false。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26424720/

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