共計 488 個字符,預計需要花費 2 分鐘才能閱讀完成。
Java 中的深克隆(deep clone)和淺克隆(shallow clone)是指對象克隆時的不同方式。
淺克隆是指在克隆對象時,只克隆對象本身,而不會克隆對象中的引用類型的屬性。克隆后的對象與原對象共享引用類型的屬性,即對其中一個對象進行修改會影響另一個對象。
深克隆是指在克隆對象時,不僅克隆對象本身,還會遞歸地克隆對象中的引用類型的屬性。克隆后的對象和原對象是完全獨立的,對其中一個對象進行修改不會影響另一個對象。
區別總結如下:
- 淺克隆只克隆對象本身,不會克隆對象中的引用類型的屬性;深克隆會遞歸地克隆對象中的引用類型的屬性。
- 淺克隆后的對象與原對象共享引用類型的屬性;深克隆后的對象和原對象是完全獨立的。
- 淺克隆對于引用類型屬性的修改會影響其他對象;深克隆對于引用類型屬性的修改不會影響其他對象。
在 Java 中,實現深克隆可以通過實現 Cloneable
接口并重寫 clone()
方法,或者通過序列化和反序列化來實現。另外,也可以使用第三方庫如 Apache Commons Lang 中的 SerializationUtils.clone()
方法來實現深克隆。
丸趣 TV 網 – 提供最優質的資源集合!
正文完