解决方案 »

  1.   

    举个最简单的例子:
    class A {
        public int i;
        public int j;
    }A a = new A();浅拷贝:
    A a1 = a;深拷贝:
    A a1 = new A();
    a1.i = a.i;
    a1.j = a.j;
      

  2.   

    克隆就是复制原来 的内容 然后拷贝到一片新的内存中
    这样两个对象指向的是不同的内存但是他们的属性是 一样的,
    引用指向的是同一个内存,即事实上只有一个对象。
    不过深拷贝和浅拷贝的区别好像不是克隆和引用的区别。
    深浅拷贝都是克隆,区别是:
    浅拷贝只是简单的把对象的属性赋予相同的值,但是如果:
    class A
    {
     int[] a;
    a()
    {
    A=new int[10];
    }
    }
    A m=new A();
    A b=new A(a);
    这样的话m.a=n.a 即他们指向了同一片内存空间
    如果m被销毁了在使用n.a的话就会出现问题
    而深拷贝就需要自己重新编写拷贝构造函数来解决这个问题:class A
    {
     int[] a;
    A()
    {
    a=new int[10];
    }
    A(A m)
    {
    a=new int[10];
    for(int i=0;i<10;i++)
    this.a[i]=m.a[i];
    }
    }
    -----------------------------
    以上是我根据c++的内容给你改的
    在java中不知道行不?
    如果有问题请提出来
    期待结果……
      

  3.   

    什么是"clone"?     在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。
    解释: 
         浅复制(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用.
         深复制(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.