String s1="hello";
String s2=s1.substring(2,3);
String s3=s1.toString();
String s4=new StringBuffer(s1).toString();
System.out.println("s1:"+s1.hashCode());
System.out.println("s2:"+s2.hashCode());
System.out.println("s3:"+s3.hashCode());
System.out.println("s4:"+s4.hashCode());
if(s1==s3 && s1==s4){
System.out.println("111111111111");
}else{
System.out.println("22222222222");
}
为什么输出是22222222222
String s2=new String("123");
你对比下,在看下s1和s2的hashcode
如果两个对象相等,他们的hashcode肯定一样。但是如果hashcode一样,这两个对象不一定相等。
我的理解 呵呵