社区
Java SE
帖子详情
关于clone方法
我为JAVA狂
2012-06-23 03:14:28
Date date1 = new Date();
Date date2 = (Date)(date1.clone());
print(date1 == date2);// false
print(date1.equals(date2));// true
书上介绍,在这里的复制是浅复制,就是如果域是基本类型的,它的值被复制。而如果域是对象,域的引用将被复制。
按照这个浅复制原则,这里的date2应该是复制了date1的引用。怎么 date1 == date2 是错的呢
...全文
113
4
打赏
收藏
关于clone方法
Date date1 = new Date(); Date date2 = (Date)(date1.clone()); print(date1 == date2);// false print(date1.equals(date2));// true 书上介绍,在这里的复制是浅复制,就是如果域是基本类型的,它的值被复制。而如果域是对象,域的引用将被复制。 按照这个浅复制原则,这里的date2应该是复制了date1的引用。怎么 date1 == date2 是错的呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我为JAVA狂
2012-06-23
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
你这本书厉害了 两点都错
第1 Date是深克隆 第2 即使是浅克隆也不是引用被复制
把书名说出来 叫大家小心点 新手最怕被烂书引入歧途了
[/Quote]
额...是我理解错了
hippoppower
2012-06-23
打赏
举报
回复
你这本书厉害了 两点都错
第1 Date是深克隆 第2 即使是浅克隆也不是引用被复制
把书名说出来 叫大家小心点 新手最怕被烂书引入歧途了
qybao
2012-06-23
打赏
举报
回复
深拷贝还是浅拷贝要查看date1.clone()的源代码才知道
如果源代码是 return this 则属于前拷贝,如果是 return new Date(this.getTime()) 则属于深拷贝
现在手头没有源码查看不了
不过从LZ的例子来分析,应该属于深拷贝
Edward1688
2012-06-23
打赏
举报
回复
这就要看==和.equals()方法的区别了,==比较的是内存地址是否相同,而.equals()方法比较的是两个对象的值是否相同。
date1与date2是两个不同的对象,在内存中分配的空间不同,所以它们的内存地址不同,用==比较时返回的就是false了
Java中
clone
方法
详解
本文深入解析Java中的
clone
方法
,对比new与
clone
创建对象的区别,探讨引用复制与对象复制的概念,并详细阐述深拷贝与浅拷贝的原理及实现方式。
Java —
clone
()
方法
本文详细介绍了Java中
clone
方法
的使用。首先解释了
clone
的概念,接着说明了使用
clone
()
方法
的条件,即实现
Clone
able接口并覆盖
clone
()
方法
。还阐述了浅复制和深复制的区别及实现方式,最后指出并非所有类都能实现深度
clone
,如StringBuffer。
Object类的
clone
方法
本文深入解析Java中的
clone
方法
,探讨其工作原理,如何实现对象的浅克隆与深克隆,以及实现深克隆的两种
方法
。同时,文章强调了在使用
clone
方法
前需实现
Clone
able接口的重要性。
java的
clone
方法
_Java
clone
方法
详解及简单实例
本文详细解读Java中
clone
方法
的工作原理,包括为何使用、如何调用以及实现要点。重点讲解了实现
Clone
able接口、重载
clone
方法
和理解native与super.
clone
的区别。同时介绍了'影子
clone
'和'深度
clone
'的概念,帮助读者掌握这一关键编程技术。
Java中的
clone
方法
本文详细介绍了Java中使用new操作符与
clone
方法
创建对象的区别,以及浅复制和深复制的概念。
clone
方法
在Java中默认执行浅复制,但可以通过实现
Clone
able接口并覆盖
clone
方法
来实现深复制。文章通过示例代码展示了如何进行深复制,并指出完全的深复制在有复杂嵌套引用的对象中可能较为复杂。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章