今天要介绍一个概念,对象的克隆。本篇有一定难度,请先做好心理准备。看不懂的话可以多看两遍,还是不懂的话,可以在下方留言,我会看情况进行修改和补充。 克隆,自然就是将对象重新复制一份,那为什么要用克隆呢?什么时候需要使用呢?先来看一个小栗子: 简单起见,我们这里用的是Goods类的简单版本。 然后我们 ...
分类:
编程语言 时间:
2017-11-05 17:19:26
阅读次数:
193
原型模式(Prototype):用原型实例指定创建对象的 种类,并且通过拷贝这些原型创建新的对象。 原型模式结构图: 原型模式涉及深克隆和浅克隆。 案例需求:制作一份简历,并复制三份。 第一次克隆实现: 1:创建简历类。 2:创建测试类 3:控制台 a,b,c三个的地址相同,说明return thi ...
分类:
其他好文 时间:
2017-10-12 19:16:07
阅读次数:
173
浅克隆:复制对象,不复制对象的引用; 深克隆:复制对象,以及对象的引用。 总结: 1、在java中,只要一个类实现了java.io.Serializable接口,那么它就可以被序列化; 2、通过ObjectOutputStream和ObjectInputStream对对象进行序列化和反序列化操作; ...
分类:
其他好文 时间:
2017-10-11 00:55:15
阅读次数:
151
对象的克隆分为对象的浅克隆和深克隆 一、对象的浅克隆 注意事项: 1.如果一个对象需要调用clone的方法克隆,那么该对象必须要实现Cloneable接口 2.Cloneable对象只是一个标识对象,并没有方法 输出结果? 编号:001姓名:狗娃 编号:001姓名:abd 3.对象的浅克隆,在克隆一 ...
分类:
编程语言 时间:
2017-09-13 14:01:55
阅读次数:
201
java对象克隆方式主要有两种:浅克隆和深克隆 首先,不要把对象的克隆和对象的赋值搞混了,看下图 p2 = p1;就是赋值操作,赋值操作只是让被赋值对象指向之前对象的地址,实际上的物理内存是一块,而克隆操作的结果应该是两个对象分别指向内容相同的两块内存。如下就是克隆操作后的状态: 下面说浅克隆和深克 ...
分类:
编程语言 时间:
2017-08-12 21:20:04
阅读次数:
206
1、模式定义 原型模式(Prototype Pattern):原型模式是一种对象创建型模式,用原型实例指定创建对象的种类,而且通过复制这些原型创建新的对象。原型模式同意一个对象再创建另外一个可定制的对象,无须知道不论什么创建的细节。 原型模式的基本工作原理是通过将一个原型对象传给那个要发动创建的对象 ...
分类:
其他好文 时间:
2017-08-12 19:40:27
阅读次数:
184
1.浅复制与深复制概念 ⑴浅复制(浅克隆) 多个变量指向一个对象 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 ⑵深复制(深克隆) 每个变量指向一个对象,同时对象内包含对象,能复制内部对象 被... ...
分类:
编程语言 时间:
2017-07-29 22:21:17
阅读次数:
167
阅读目录 为什么要克隆?如何实现克隆浅克隆和深克隆解决多层克隆问题总结 阅读目录 为什么要克隆?如何实现克隆浅克隆和深克隆解决多层克隆问题总结 为什么要克隆?如何实现克隆浅克隆和深克隆解决多层克隆问题总结 假如说你想复制一个简单变量。很简单: 不仅仅是int类型,其它七种原始数据类型(boolean ...
分类:
编程语言 时间:
2017-07-16 18:30:59
阅读次数:
193
一个序列化例子 Test.java 包括一个无参构造器,一个序列化的属性和不被序列化的属性。 定义序列化的工具方法 序列化 反序列化 测试(反序列化的本质是对象的深克隆,不会走构造方法) ...
分类:
其他好文 时间:
2017-07-08 13:30:12
阅读次数:
133
一、动机与定义 之前学习原型模式一直以为原型模式目的是为了方便的创建同样或相似对象,用复制对象的方式替换new的方式,还研究了深克隆和浅克隆。近期细致看了GOF的设计模式。发现原型模式的本意并不不过复制对象这么简单。 复制对象确实是一方面,当我们须要大量相似。甚至同样对象的时候,除了一个个的new之 ...
分类:
其他好文 时间:
2017-07-04 14:59:06
阅读次数:
103