为什么要使用clone()?

在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A 中已经包含了一些有效值,此时可能会需要一个和A 完全相同新对象B,并且此后对B 任何改动都不会影响到A 中的值,也就是说,A 与B 是两个独立的对象,但B 的初始值是由A 对象确定的。
在Java 语言中,用简单的赋值语句是不能满足这种需求的。要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,也是最高效的手段

clone()与new的区别

  1. clone()不会调用构造方法;new会调用构造方法
  2. clone()更快。clone()能快速创建一个已有对象的副本,即创建对象并且将已有对象中所有属性值克隆;new只能在JVM中申请一个空的内存区域,对象的属性值要通过构造方法赋值

YOLO