一、 clone方法的使用:要一个对象能使用clone()方法,则该对象必须实现标记接口Cloneable,否则就会报异常,异常抛出类型为java.lang.CloneNotSupportedException。
二、原型模式中浅复制+深复制:
浅复制:被复制的对象都含有原对象设置的值,并且复制的对象都指向原对象。例如 A a = new A(); A b = a;这种形式的就是浅复制。a、b在JVM内存中占有同一片区域。
深复制:深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。在复制对象中修改内容,不会改变被复制对象中的值,clone()方法实现的是深复制。简单理解 B = A.clone();B在JVM中占的内存区域和A在JVM中占的内存区域是不同的,这种情况就是深复制。