浅复制和深复制

白玉 IT哈哈
概念:俗话就是拷贝一个副本
一般实现:
实现Cloneable 接口重写clone()方法
部分代码

public Object clone() {     Object o = null;     try {         o = (Student) super.clone();// Object中的clone()识别出你要复制的是哪一         // 个对象。     } catch (CloneNotSupportedException e) {         System.out.println(e.toString());     }     return o; }

注意:浅复制不能同时复制引用

如果需要复制引用将需要引用的对象也克隆一下做深复制
更好的方法是利用序列化(常说的串行化)来实现深复制(不需要实现Cloneable接口,需要实现Serializable接口)
见部分代码

public Object deepClone() throws IOException, OptionalDataException, ClassNotFoundException {     // 将对象写到流里     ByteArrayOutputStream bo = new ByteArrayOutputStream();     ObjectOutputStream oo = new ObjectOutputStream(bo);     oo.writeObject(this);     // 从流里读出来     ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray());     ObjectInputStream oi = new ObjectInputStream(bi);     return (oi.readObject()); }

更多相关文章

  1. Swagger 自动生成 Dubbo 服务的接口文档,以及测试调用
  2. 为什么我们要面向接口编程?!
  3. 美元。针对简单的php, post返回对象
  4. 将JavaScript对象作为Dictionary 传递给C#WCF服务
  5. 通过],[和创建json对象来分割字符串
  6. 我通过jQuery-ajax创建了__PHP_Incomplete_Class对象此错误
  7. 如何从Python脚本向jQuery发送JSON对象?
  8. jQuery 事件绑定方法(bind hover toggle live.... )、删除事件方法
  9. jQuery:在对象内使用.remove()而不是Regex

随机推荐

  1. 【jQuery】判断浏览器类型和版本
  2. Asp。NET MVC Ajax-Post表单和Ajax-Get
  3. Chosen 基于jquery的选择框插件使用方法
  4. 如何在jquery中获取textarea的值?
  5. 如何在Rails 4(使用jquery)中上传多个文
  6. 《JQuery——插件的开发和使用(二)之qTip2
  7. jQuery并在回调中解析JSON
  8. 不仅模糊了Jquery中的一个动作
  9. Jquery跨域进行Ajax操作
  10. 更改html隐藏字段的事件