一.JAVA假克隆
Java中,对于基本类型,可以用“=”进行克隆,而对于引用类型却不能简单的使用“=”进行克隆,这与JAVA的内存使用空间有关,JAVA在栈中保存基本类型和引用变量,在堆中保存对象。对于引用变量而言,使用“=”将修改引用,而不是复制堆中的对象,此时两个引用对象将指向同一个对象,因此如果对一个变量修改则会修改另一个对象。
public class Employee {...
分类:
编程语言 时间:
2014-12-10 18:09:46
阅读次数:
207
前言 博客写的多了,自己翻起来也费劲,这里就进行一下整合。1 Java相关的杂七杂八1 JavaMelody监控struts\spring2 JavaMelody监控sql3 JavaMelody使用指南4 Tomcat编译报错5 Java深克隆与浅克隆6 JDom增删改查7 面试整理18 自定义....
分类:
编程语言 时间:
2014-11-30 21:21:16
阅读次数:
304
java对象的克隆分为深克隆(把要克隆的对象及所有引用对象都克隆了)和浅克隆。 实现深克隆的方法:1、所有引用对象都实现cloneable接口,重写Object 类的clone方法。 2、利用串行化来做深复制,即把对象写到流里的过程是串行化(Seriliz...
分类:
其他好文 时间:
2014-11-11 20:41:43
阅读次数:
233
一、概述:
使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。简单的说就是对象的拷贝生成新的对象(对象的克隆),原型模式是一种对象创建型模式。
二、使用场景:
创建新的对象可以通过对已有对象进行复制来获得,如果是相似对象,则只需对其成员变量稍作修改。
三、UML结构图:
四、参与者
(1) Prototype(...
分类:
编程语言 时间:
2014-11-06 00:47:22
阅读次数:
243
Java支持我们对一个对象进行克隆,通常用在装饰模式和原型模式中。那么什么是深克隆,什么是浅克隆呢。 【浅克隆】,通常只是对克隆的实例进行复制,但里面的其他子对象,都是共用的。 【深克隆】,克隆的时候会复制它的子对象的引用,里面所有的变量和子对象都是又额外拷贝了一份。 下面的两个例子可以很...
分类:
编程语言 时间:
2014-10-26 00:15:18
阅读次数:
293
clone()是java.lang.Object类下面的一个很难处理的方法,clone()的作用很简单,提供一种克隆机制创建对象的副本,对于如何实现它已成为一个棘手的事,同时还长期被广受批评。不管怎样,我们不去争论历史,现在我们将尝试学习clone方法是怎样工作的。说实在的,想理解克隆机制并不简单,甚至有经验的java程序员也很难解释可变对象的克隆是如何运作的、深克隆(deep copy)与浅克隆...
分类:
其他好文 时间:
2014-10-22 16:04:14
阅读次数:
361
1.java里的clone分为: A:浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。b:深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍。Java中对象的克隆,为了获取对象的一份拷贝,我们可以利用Object类的clone()方法。必须要遵循下面三点1.在派生...
分类:
编程语言 时间:
2014-08-07 18:44:40
阅读次数:
380
之前学习原型模式一直以为原型模式目的是为了方便的创建相同或相似对象,用复制对象的方式替换new的方式,还研究了深克隆和浅克隆。最近仔细看了GOF的设计模式,发现原型模式的本意并不仅仅是复制对象这么简单。
创建型模式主要讲如何创建对象,通常包含何时创建,谁来创建,怎么创建等。GOF书里面写的意图是,用原型实例指定创建对象的种类,并且通过拷贝这些原型对象创建新的对象。也就是说原型模式应该理解成先指定好要创建的对象种类,也就是指定对象类型,再通过拷贝方式创建对象。...
分类:
其他好文 时间:
2014-08-06 12:00:11
阅读次数:
228
前言:我们知道对象分引用类型和值类型。浅克隆:复制一个现有对象,引用类型指向同一个内存块(string为最特殊的对象,这里当作值类型来看先)public class User { public int Age { get; set; } public strin...
分类:
其他好文 时间:
2014-07-30 20:12:14
阅读次数:
162
对象克隆:浅克隆:被克隆的对象中的值类型数据被复制一份新值,但是引用的对象只被复制其引用传递给新克隆出来的对象深克隆:被克隆的对象中的值类型数据被复制一份新值,并且其中引用的对象会重新创建新的对象,把新对象的引用传递给新克隆出来的对象Java中实现克隆:Java中Object中定义了clone方法,...
分类:
编程语言 时间:
2014-05-14 02:46:53
阅读次数:
257