為什么要使用clone()?
在實際編程過程中,我們常常要遇到這種情況:有一個對象A,在某一時刻A 中已經包含了一些有效值,此時可能會需要一個和A 完全相同新對象B,並且此后對B 任何改動都不會影響到A 中的值,也就是說,A 與B 是兩個獨立的對象,但B 的初始值是由A 對象確定的。
在Java 語言中,用簡單的賦值語句是不能滿足這種需求的。要滿足這種需求雖然有很多途徑,但實現clone()
方法是其中最簡單,也是最高效的手段
clone()與new的區別
- clone()不會調用構造方法;new會調用構造方法
- clone()更快。clone()能快速創建一個已有對象的副本,即創建對象並且將已有對象中所有屬性值克隆;new只能在JVM中申請一個空的內存區域,對象的屬性值要通過構造方法賦值