public class a {
public static void main(String args[]){
final String s1="job";
final String s2="seeker";
String s3=s1.concat(s2);
String s4="jobseeker";
System.out.println(s3==s4);=> false
System.out.println(s3.hashCode()==s4.hashCode());=>true
System.out.println(s3.hashCode());=>2201324
System.out.println(s4.hashCode());=>2201324

}
}


“ ==”比较对象的hashCode ...。s3和s4的.hashCode相同,但是s3 == s4给出false。有人解释。我需要没有正确格式注释的答案,不是无用的问题。不知道答案的人远离这个问题。

最佳答案

无法使用==运算符比较Java字符串,因为它仅比较引用。使用s3.equals(s4)进行字符串比较重载。
我猜s3.hashCode() == s4.hashCode()的计算结果为true,因为它比较整数,这些整数在Java中按值进行比较。

10-07 19:18
查看更多