Java的clone方法】的更多相关文章

一.clone的概念 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那么在java语言中,有几种方式可以创建对象呢? 使用new操作符创建一个对象 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存.程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类型,才能知道要分配多大的内存空间.分配完内存之后,再…
在Java中,经常会需要新建一个对象,很多情况下,需要这个新建的对象和现有的某个对象保持属性一致. 那么,就有两种方式来实现这个对象的构造: ①通过新建一个对象,为这个对象的属性根据原有对象的属性来进行赋值 ②调用clone方法,来实现实例对象的克隆 对于Java的clone方法,需要注意的就是它实际上是一种“浅克隆”(Shallow Clone),对于int.double这种基本数据类型,直接拷贝值:对于String这样的类对象,则是直接拷贝引用.因此对于通过clone得到的对象来说,它很大程…
Java中的clone() 方法 java所有的类都是从java.lang.Object类继承而来的,而Object类提供下面的方法对对象进行复制. protected native Object clone() throws CloneNotSupportedException; 这个javabean必须实现一个标识接口,Cloneable,表明这个javabean支持复制,如果没有实现这个接口,而调用clone()方法,编译器就会抛出CloneNotSupportedException异常.…
什么是clone 在实际编程过程中,我们常常要遇到这种情况:有一个对象object1,在某一时刻object1中已经包含了一些有效值,此时可能会需要一个和object1完全相同新对象object2,并且此后对object2任何改动都不会影响到object1中的值,也就是说,object1与object2是两个独立的对象,但object2的初始值是由object1对象确定的.在Java语言中,用简单的赋值语句是不能满足这种需 求的.要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单…
什么是"clone"? 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能 会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的.在 Java语言中,用简单的赋值语句是不能满足这种需求的.要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,也是最高效的手段. Java的所有类都默认继承java.lang.Object类,在java.lan…
1 Java中对象的创建过程 java创建对象的方式有以下两种: (1)使用new操作符创建一个对象 (2)使用clone的方法复制一个对象,(在Java中,clone是Object类的protected方法) 这两种对象创建方法有什么区别? new操作时,首先根据new后面的类型(知道类型才能判断需要分配多大的内存空间)分配内存空间(此时分配到的内存空间相当于产生了一个新的对象,只是还有初始化),分配完内存空间后,在调用构造函数,初始化对象(填充对象的各个域的值).构造方法返回后,一个对象创建…
现在有User类:(Getter和Setter省略) public class User implements Cloneable { private String name; private int age; private User user; @Override public User clone() { try { return (User) super.clone(); } catch (CloneNotSupportedException e) { } return null; }…
1.java语言中没有明确提供指针的概念与用法,而实质上每个new语句返回的都是一个指针的引用,只不过在大部分情况下开发人员不需要关心如果取操作这个指针而已. 2.在java中处理基本数据类型时,都是采用按值传递(传递的是输入参数的复制)的方式执行,除此之外的其他类型都是按值引用传递(传递的是对象的一个引用)的方式进行.除了在函数调用时是引用传递,在使用=复制时也是采用引用传递. 实现 package cloneDemo; import java.util.Date; public class…
详解Java中的clone方法 参考:http://blog.csdn.net/zhangjg_blog/article/details/18369201/ 所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那么在java语言中,下面两种方式创建对象有什么区别呢? 使用new操作符创建一个对象 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存.程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类…
网上搜帖: clone()是java.lang.Object类的protected方法,实现clone方法: 1)类自身需要实现Cloneable接口 2)需重写clone()方法,最好设置修饰符modifier为public,以便跨包调用.   浅拷贝与深拷贝 1.浅复制与深复制概念⑴浅复制(浅克隆)被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不 复制它所引用的对象. ⑵深复制(深克隆)被复制对象的所有变量都…