【发布时间】:2014-06-19 23:16:21
【问题描述】:
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... .hashCode 的 s3 和 s4 相同,但 s3==s4 给出 false 。谁来解释。我需要一个不正确格式 cmets 的答案而不是无用的问题。不知道答案的人远离这个问题。
【问题讨论】:
-
看来你也应该看到这个:stackoverflow.com/questions/513832/…
-
s3==s4 比较引用,s3.equals(s4) 比较 hashCodes
-
YM .equals 比较值而不是哈希码(而不是引用)。