共享heap中的空间
实现clone()方法条件:
-
需拷贝的类实现Cloneable接口(该接口内没有方法)、
-
实现 public
Object clone() 方法
clone()为浅拷贝,若想改为深拷贝,需类中可变域生成新的实例
//浅拷贝:
public class ShallowCopy implements Cloneable{
private Date begin;
public Date getBegin(){return this.begin;}
public void setBegin(Date d){this.begin=d;}
public Object clone(){
Object obj=null;
try {
obj=super.clone();
}catch (CloneNotSupportedException ex) {
ex.printStackTrace();
}
return obj;
}
}
//深拷贝:
public class DeepCopy implements Cloneable{
private Date begin;
public Date getBegin(){return this.begin;}
public void setBegin(Date d){this.begin=d;}
public Object clone(){
DeepCopy obj=null;
try{
obj=(DeepCopy)super.clone();
}catch (CloneNotSupportedException ex) {
ex.printStackTrace();
}
obj.setBegin((Date)this.getBegin().clone());
return obj;
}
}
分享到:
相关推荐
java设计模式【之】原型模式、深拷贝与浅拷贝【源码】【场景:克隆羊】 * 原型模式(Prototype) * 实现方式: * 需要被克隆的 class类, 重写Object中的clone()方法,并实现Cloneable接口(否则报错 ...
Java深浅clone测试代码 流拷贝 Cloneable
java.lang.Cloneable和java.io.Serializable一样属于标记型接口,没有定义任何方法和属性。 一个类想要使用克隆方法 重写clone()方法,因为Object的clone()的修饰符是protected; @HotSpotIntrinsicCandidate ...
Object类中的clone方法clone()方法的作用克隆方法用于创建对象的拷贝,为了使用clone方法,类必须实现java.lang.Cloneable接口
day16-Map、可变参数、Cloneable.pdf
java.io.Serializable, java.lang.Cloneable, java.util.EventListener, nc.vo.gl.vouchervaluechange.ValueChangeListener, nc.vo.glpub.IVoAccess -----------------------------------------------------------...
Cloneable C. ItenListener D. ActionListener 在读取二进制数据文件的记录时,为了提高效率常常使用的一种辅助类是 C 。 InputStream B. FilelnputStream C. BufferlnputStream D. BufferedReader 下列事件监听器...
java.util.HashMap,V> (implements java.lang.Cloneable, java.util.Map,V>, java.io.Serializable) java.util.LinkedHashMap,V> (implements java.util.Map,V>) org.springframework.core.annotation....
'use strict'var cloneable = require ( 'cloneable-readable' )var fs = require ( 'fs' )var pump = require ( 'pump' )var stream = cloneable ( fs . createReadStream ( './package.json' ) )pump ( stream . ...
U10316024_HW_15_10 类 MyStack 实现 Cloneable 并使用深循环
您可以实现 clone 方法,但是当开发人员添加新的 Field 或 Property 时,也应该更改 clone 方法。 另一种方法是使用性能不佳的反射。 此源生成器通过生成用于克隆对象的样板代码来节省您的时间。安装可克隆您应该...
1.在类定义中实现Cloneable接口 2.在类中覆盖基类的clone()方法,声明为public,注意 4.使用clone方法时要进行强制转换 1.“浅克隆
深克隆和浅克隆 2. Compare 实现Compare和Comparator的区别 3. Hash Hash值比较、HashSet特点、Final特点 4. Iterator 迭代器的用法 5. KeyWord volatiled和atomic 6. List ArrayList和LinkedList的区别和删除时注意...
java基础 1、Arrays.sort实现原理和Collections.sort实现原理...cloneable接口实现原理,浅拷贝or深拷贝 Java NIO使用 hashtable和hashmap的区别及实现原理,hashmap会问到数组索引,hash碰撞怎么解决 arraylist和linke
为何 Collection 不从 Cloneable 和 Serializable 接口继承? 5. 为何 Map 接口不继承 Collection 接口? 6. Iterator 是什么? 7. Enumeration 和 Iterator 接口的区别? 8. 为何没有像 Iterator.add()这样的...
很简单一个模式,就是在内存中保留原来数据的拷贝. 设计模式之 Interpreter(解释器) 主要用来对语言的分析,应用机会不多. 设计模式之 Visitor(访问者) 访问者在进行访问时,完成一系列实质性操作,而且还可以扩展. ...
当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。 47.java.lang.EnumConstantNotPresentException 枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象...
java的两种深度克隆方法,1cloneTest是用Cloneable接口的clone方法实现(对象必须要实现cloneable接口).2cloneSerialize.java是用对象流写对象到byte数组中,然后从byte数组中取得对象.(对象必须要实现serializble接口)