Java克隆

通过搜索了解到,克隆大概有两个作用

1.为了安全,希望对新对象的操作,不对原对象有影响

例如:

class Test {
    private static int[] value;
    static {
        value = new int[]{1, 2, 3, 4, 5};
    }
    public static final int[] getValue() {
        return value.clone();
    }
}

为了不破坏value数组的值,使用value的克隆

2.当对象的创建比较复杂的时候,或者不知道对象是怎么创建出来的,那就用克隆吧

关于浅克隆和深克隆:

http://blog.csdn.net/hj7jay/article/details/51441225

时间: 2024-10-12 14:27:41

Java克隆的相关文章

java克隆机制

看了下面博客就很明白了 http://www.cnblogs.com/Qian123/p/5710533.html#_label0 java对象创建方式有三种: 1.通过new对象 2.通过java克隆(分为浅克隆和深克隆) 3.通过反序列化 (是深克隆效果的很好体现)

java克隆对象clone()的使用方法和作用

转自:997.html">http://www.okrs.cn/blog/news/?997.html 内容摘要 若需改动一个对象,同一时候不想改变调用者的对象.就要制作该对象的一个本地副本.这也是本地副本最常见的一种用途.若决定制作一个本地副本.仅仅需简单地使用clone()方法就可以.Clone是"克隆"的意思,即制作全然一模一样的副本.这种方法在基础类Object中定义成"protected"(受保护)模式. 但在希望克隆的不论什么衍生类中,必

java克隆测试

1.person类 1 //clone方法必须实现Cloneable接口 2 public class Person implements Cloneable { 3 private String name; 4 private int age; 5 public Calendar calendar; 6 7 public Person() { 8 } 9 10 // 构造方法 11 public Person(String name, int age, Calendar calendar) {

Java 克隆及序列化

在实际编程中,会遇到需要使用克隆技术的情况,比如,要获得一个非常复杂的对象,与其使用new创建一个新的对象再对各个域赋值,不如直接克隆现有对象.该技术的应用场合并不多见,下面来看看克隆的几种情况. 错误克隆:1.使用 “=”操作对象  原因:运用“=”操作对象,只是修改对象的引用,这时的两个变量指向一个对象 2.使用“==”比较对象  原因:运用“==”比较对象,只是去判断两个对象的内存地址是否一致,而不是去判断两个对象的域是否一致 浅克隆:使用clone()方法,该方法的声明如下:public

Java克隆--深克隆与浅克隆的区别

克隆,就是复制一个对象的副本,而克隆又分浅克隆和深克隆.浅克隆是指克隆得到的对象基本类型的值改变了,而源对象的值不会变.但如果被克隆对象引用类型的值改变了,那么源对象的值同样会改变,因为引用类型在栈内存中存放的是一个引用地址,被克隆对象后也和源对象的引用地址一样,都是指向同样的内存空间的值.所以在克隆时,任何一个对象的值的改变都会令另外的值改变,所以这种情况下要用深克隆. 要注意的是要克隆的对象的泪必须继承cloneable接口.浅克隆的特点是只克隆该对象本体,它的优缺点就是一改皆改:深克隆的特

JAVA克隆对象报错:The method clone() from the type Object is not visible

将一个对象复制一份,称为对象的克隆技术.在Object类汇总存在一个clone()方法:protected Onject clone() throws CloneNotSupportedException如果某各类的对象想被克隆,则对象所在的类必须实现Cloneable接口.此接口没有定义任何方法,是一个标记接口接下来我们看看具体代码实现:以下是正确的代码: //要实现Cloneable这个接口,不用传参 public class Dog implements Cloneable{ privat

JAVA 克隆

Java总结篇系列:java.lang.Object

从本篇开始,将对Java中各知识点进行一次具体总结,以便对以往的Java知识进行一次回顾,同时在总结的过程中加深对Java的理解. Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java中最基本的类java.lang.Object开始谈起. Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起.作为其他所有类的基类,Object具有哪些属性和行为, 是Java语言设计背后的思维体现. Object类位于java.lang包中,java.lang包包

Java 访问权限控制:你真的了解 protected 关键字吗?

摘要: 在一个类的内部,其成员(包括成员变量和成员方法)能否被其他类所访问,取决于该成员的修饰词:而一个类能否被其他类所访问,取决于该类的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下,包访问权限),protected 和 public,而其中只有包访问权限和public才能修饰一个类(内部类除外).特别地,很多的介绍Java的书籍对protected介绍的比较笼统,常常会对大家造成误解.因此,本文重点揭示了 protected 关键字的内涵和用法,并介绍了一些其他