Cloneable接口的作用是在對象進行克隆操作時提供一個標識,即表明該對象是可克隆的。Cloneable接口是一個標記接口,沒有定義任何方法,它僅僅是用來標識類的克隆能力。
深克隆是指在克隆操作中,除了復制對象本身的所有屬性外,還會遞歸復制對象中包含的引用類型的屬性,使得克隆后的對象與原對象沒有任何關聯。
淺克隆是指在克隆操作中,只復制對象本身的所有屬性,而不會復制對象中包含的引用類型的屬性。因此,克隆后的對象與原對象共享引用類型的屬性,即對其中一個對象的修改會影響另一個對象。
在java中,通過實現Cloneable接口和重寫clone()方法來實現對象的克隆。在重寫clone()方法時,一般需要調用父類的clone()方法,并對引用類型的屬性進行深度克隆。