本帖最后由 黎志文 于 2013-6-10 04:56 编辑
class Test
{
public int hashCode()
{
return 60;
}
}
class Demo
{
public static void main(String[] args)
{
Test t1 = new Test();
Test t2 = new Test();
System.out.println("t1="+t1+"...t2="+t2);
System.out.println(t1==t2);
}
}
打印出来的结果是:
t1=Test@3c...t2=Test@3c
false
这是什么意思?我以为t1和t2的哈希码值相同,也就代表它们在内存中的地址值相同,所以它们是同一个对象,但t1==t2结果却是false,这样看来这俩对象在内存中的地址值是不一样的,那么
1.它们的地址值又是什么?
2.它们的地址值和它们的哈希码值有何关系?
3.Object 类中的equals比较的是否就是两个对象的地址值?
|