原始模型

原始模型就是给出一个原始对象来指明要创建对象的类型,然后用复制这个原始对象的方法创建出更多同类型的对象。

要理解原始模型需要先理解浅层次的拷贝与深层次的拷贝之间的不同。

浅层次拷贝就是利用从Object继承的clone方法,获取的新对象是一份拷贝,然而所引用的对象仅仅拷贝的是内存地址。拷贝对象和原对象共享内存地址,这就意味着修改拷贝对象也就修改了原始对象,这是很危险的。

实际工作中使用一些全局性的对象时,最好是深拷贝一份,否则存在影响全局的风险。

深层次拷贝则是连对象的引用也拷贝一份,这时在对引用对象的操作就不会影响到原对象,是安全的。深层次拷贝需要实现clonable接口。

原始模型,布布扣,bubuko.com

时间: 2024-10-14 07:31:18

原始模型的相关文章

java设计模式--原始模型模式

简介 原始模型模式属于对象的创建模式.通过一个原型对象来指明要创建对象的类型,然后用复制原型对象的方法来创建出更多同类型的对象. Java所有的类都是从java.lang.Object类继承来的,Object类提供clone()方法对对象进行复制.一般调用clone()方法需要满足一下条件: 1.对于任何对象x,都有:x.clone()!=x.也就是克隆的对象和原对象不是一个对象. 2.对于任何对象x,都有:x.clone().getClass()=x.getClass().也就是克隆对象与原对

原始模型模式

原始模型模式属于对象的创建模式.通过给出一个原始对象来致命所要创建的对象的类型,然后用复制这个原始对象的办法来创建出更多同类型的对象. 从孙大圣的手段谈起:悟空可以用猴毛根据自己的形象,复制出很多“身外之身”来.老孙的这种手段在面向对象的设计领域里叫做原始模型模式. 下面看一下,实现大圣自我复制的浅拷贝代码实现,代码包含三个类.一个齐天大圣类,其中包含一个本尊对象Monkey.还有一个Monkey类,用来定义悟空.还有一个金箍棒类,定义金箍棒. import java.util.Date; /*

Java 原始模型(Prototype)模式

一.什么是原型模式: 通过给出一个原型对象指明所要创建的对象的类型,然后通过复制这个原型对象来获取的更多的同类型的对象. 在Java语言中,支持原型模式,所有的对象都继承自Object对象,Object类提供一个clone()方法,它可以将JavaBean复制一份.所有要复制对象的类都要继承Cloneble接口,并实现继clone()方法才可以通过复制来获取自身更过的对象.如果一个对象没有实现Cloneble接口,则会抛出CloneNotSupportedException异常. 二.原型模型结

使用原始模型,模型参数解析

使用原始模型,模型参数解析 STEPS: (400, 450) MAX_ITER: 500 表示最大轮数和改变学习率的轮次数 https://blog.csdn.net/zziahgf/article/details/79803171 原文地址:https://www.cnblogs.com/miaozhijuan/p/12556343.html

java面试题大全

java面试笔试题大汇总     第一,谈谈final, finally, finalize的区别. 最常被问到. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统). 第四,&和&&的区别. 这个问得很少. 第五,HashMap和Hashtable的区

学习笔记:Caffe上LeNet模型理解

学习笔记:Caffe上LeNet模型理解 Caffe中用的模型结构是著名的手写体识别模型LeNet-5(http://yann.lecun.com/exdb/lenet/a35.html).当年美国大多数银行就是用它来识别支票上面的手写数字的.能够达到这种商用的地步,它的准确性可想而知,唯一的区别是把其中的sigmoid激活函数换成了ReLU. 为什么换成ReLU,上一篇blog中找到了一些相关讨论,可以参考. CNN的发展,关键就在于,通过卷积(convolution http://deepl

分布式机器学习的集群方案介绍之HPC实现

机器学习的基本概念 机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测未来(是否迟到)的一种方法.目前机器学习广泛应用于广告投放.趋势预测.图像识别.语音识别.自动驾驶和产品推荐等众多领域. 在确定了问题模型之后,根据已知数据寻找模型参数的过程就是训练,训练过程就是不断依据训练数据来调整参数的迭代,从而使依据模型作出的预测结果更加准确. HPC的基本概念 HPC就是高性能计算或高性能计算集群的简写.为了追求高性能,HPC的工作负载一般直接运行在Linux系

扭曲你的数据,让其变得具有视觉吸引力

前言 本文算是一篇娱乐型的文章吧,并没有牵扯到太多技术性的东西. 本文主要写的是如何扭曲你的数据,在不影响结果和其他属性的情况下,使得你数据画出来的图更加好看. 本文以"兔子"数据为例. 下文分享链接密码均为: yjoy 正文 经常有这样的情况,你用数据画出图像有看起来会很丑,如何让你的图像变得好看一点呢?需要修改点一点. 且这个修改是不能在数据的属性基础上进行修改.在现实生活中该方法的用处在于在做一些数据报表的时候可以令你的报表变得更加清晰好看明了.或者是开发相关数据绘图软件,对数据

转23种设计模式

1.FACTORY 追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说"来四个鸡翅"就行了.麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开.消费者任何时候需要某种产品,只需向工厂请求即可.消费者无须修改就可以接纳新产品.缺点是当产品修改时,工厂类也要做相应的修改.如:如何创建及如何向客户端提供. 2.BUILDER MM最爱听的就是"我爱你"这句话了,见到不同