首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于clone步骤

2012-06-24 
关于clone方法Date date1 new Date()Date date2 (Date)(date1.clone())print(date1 date2)// fa

关于clone方法
Date date1 = new Date();
Date date2 = (Date)(date1.clone());
print(date1 == date2);// false
print(date1.equals(date2));// true

书上介绍,在这里的复制是浅复制,就是如果域是基本类型的,它的值被复制。而如果域是对象,域的引用将被复制。
按照这个浅复制原则,这里的date2应该是复制了date1的引用。怎么 date1 == date2 是错的呢


[解决办法]
深拷贝还是浅拷贝要查看date1.clone()的源代码才知道
如果源代码是 return this 则属于前拷贝,如果是 return new Date(this.getTime()) 则属于深拷贝
现在手头没有源码查看不了
不过从LZ的例子来分析,应该属于深拷贝

[解决办法]
你这本书厉害了 两点都错 

第1 Date是深克隆 第2 即使是浅克隆也不是引用被复制

把书名说出来 叫大家小心点 新手最怕被烂书引入歧途了

热点排行