喂,有没有搞错呀,
import java.util.*;
除了它,什么也没有 

解决方案 »

  1.   

    哦,原来如此,这应该是,白皮书java2核心技术I的克隆部分内容吧,看不懂也没关系了,
    本来就用的少了!!!跳过去!!
      

  2.   

    我的理解是:
    cloneable这个接口其实是没有的,只是一个标记。深度克隆的意思是:比如说一个Vector,如果只是简单的Vector.clone()那么Vector里面的元素并没有克隆,必须利用for语句对其中的每一个元素进行克隆,这就是深度克隆。
      

  3.   

    java.lang.Object里面定义了protected Object clone();因此,除非你是在java.lang包里的,否则必须要implements Cloneable才能克隆,
    所谓深层克隆就是把某个对象中所有的数据统统克隆出一个副本,如果数据本身也是一个对象,那对他也深层克隆,当非深层克隆时,你只是相当于new了一个新的对象,但里面的字段都还是指向原来的数据,一旦原有的(新的)数据变了,新的副本(原件)的内容也跟着变了
      

  4.   

    Cloneable接口是标记接口的意思:其实这个接口里面什么也没有实现.继承这个接口只是为了告诉编译器这个类可以被深度克隆.而如果不继承这个接口,你如果试图对这个类进行深度克隆,将会出错.一般的克隆实际上只是产生一个对象的引用,这个引用指向这个实际的对象.而深度克隆是要产生跟原来的对象一模一样的对象而非指向这个对象的引用.也就是楼上所说的对象的副本.这个副本跟原来的对象,使用不同的内存空间,因此改变深度克隆对象的时候并不会改变原来的对象.