关于String
Java code
static void fun4(){
String str1 = "abc";String str2 = new String("abc");
System.out.println(str1.hashCode());
System.out.println(str2.hashCode());
if(str1 == str2) System.out.println("相同");
else System.out.println("不相同");
}
它的运行结果居然是:
96354
96354
不相同
小生不懂了,求哪位前辈指教!
------解决方案--------------------
------解决方案--------------------你理解错了,或者你老师说错了。hashCode主要作用是快速判断两个对象的内涵是否相等。
------解决方案--------------------有一定道理。新建两个空的Object对象,hashCode是不同,但是他们可能是根据内存地址转换的。
但是String重写了hashcode,你就要去看String的hashcode 是怎么来的。
可以自己尝试读源代码。
------解决方案--------------------Java对象的equals()和hashCode()的使用 可以看看这个文章:http://blog.csdn.net/RichardSundusky/article/details/1508028