先贴上代码:
public class Demo1 implements Cloneable{

public static void main(String[] args) throws Exception {
Demo1 d1 = new Demo1();
Demo1 d2 = (Demo1)d1.clone();
String c1 = "h";
String c2 = "h";
System.out.println("d1.hashCode()="+d1.hashCode()+" d2.hashCode()="+d2.hashCode());
System.out.println("d1.equals(d2) "+d1.equals(d2)); 
System.out.println("d1==d2 "+(d1==d2));
System.out .println();
System.out.println("c1.hashCode()="+c1.hashCode()+" c2.hashCode()="+c2.hashCode());
System.out.println("c1.equals(c2) "+c1.equals(c2)); 
System.out.println("c1==c2 "+(c1==c2));

} }
运行结果如下:
d1.hashCode()=14576877 d2.hashCode()=12677476
d1.equals(d2) false
d1==d2 falsec1.hashCode()=104 c2.hashCode()=104
c1.equals(c2) true
c1==c2 true
--------------------------------------------------------------------------------
我想请教一下,为什么d2是d1的克隆,但是hashcode不一样...
还有就是equals方法到底根据什么来比较对象的值?期待被秒。。