请问关于clone和equals

「已注销」 2009-11-26 12:09:36
先贴上代码:
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 false

c1.hashCode()=104 c2.hashCode()=104
c1.equals(c2) true
c1==c2 true
--------------------------------------------------------------------------------
我想请教一下,为什么d2是d1的克隆,但是hashcode不一样...
还有就是equals方法到底根据什么来比较对象的值?

期待被秒。。
...全文
73 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2009-11-26
  • 打赏
  • 举报
回复
非常感谢,closewbq
closewbq 2009-11-26
  • 打赏
  • 举报
回复
「已注销」 2009-11-26
  • 打赏
  • 举报
回复
呵呵,好快就有回复了,谢谢zl3450341
「已注销」 2009-11-26
  • 打赏
  • 举报
回复
希望能够再贴一份关于equals的帖子给俺学习下..再次谢谢大家..
ssssss 2009-11-26
  • 打赏
  • 举报
回复
神似逝去的阿娇哦!
脸以下的就不像啦
xiaotian521 2009-11-26
  • 打赏
  • 举报
回复
哈哈,我看看文章吧!
zl3450341 2009-11-26
  • 打赏
  • 举报
回复
http://hi.baidu.com/cy_java/blog/item/e0a8860161c2f5e608fa93b7.html
很好的一篇文章

回5楼 我觉得那不是她本人头像
xiaotian521 2009-11-26
  • 打赏
  • 举报
回复
4楼,头像是你本人吗?I's very beautiful!
道光2008 2009-11-26
  • 打赏
  • 举报
回复
深度克隆
hejunPurple 2009-11-26
  • 打赏
  • 举报
回复
自己写的类肯定要自己实现 equals 和 clone

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧