Java對象的深層復(fù)制是指Java對象A本身被clone成新對象B,同時A的屬性也是被clone成新對象,賦值到A的各個屬性上去,A與B的相同屬性都引用到不同的對象; 
Java對象的淺層復(fù)制是指Java對象A本身被clone成新對象B,但A的屬性沒有被clone處理,只是把A的各個屬性所指的對象賦值到B對應(yīng)的屬性上,A與B的相同屬性都引用到同一個對象。

在java中,默認(rèn)是淺層復(fù)制的,如果要復(fù)制的對象中只含有基本數(shù)據(jù)類型和String類型,

那么淺層復(fù)制和淺層復(fù)制是沒有區(qū)別的,所以你可以放心的使用默認(rèn)的淺層復(fù)制,

如果屬性有Date或其他自定的數(shù)據(jù)類,則一定的小心了,因為這時淺層復(fù)制后對象B的屬性birthday與原始對象A的對應(yīng)屬性birthday,都是引用到同一個對象TestVo ,

如果通過B.birthday的方法改了TestVo的值,則修改會影響到A.birthday,這時也就會發(fā)生互串的情況

以下三種方法可以實現(xiàn)淺層復(fù)制:

(1)通過調(diào)用對象set方法來實現(xiàn),屬性個數(shù)比較少時適用

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

  TestVo   .name =   setAge(.age = .birthday == = (TestVo)

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培
        
		<div   id=

網(wǎng)友評論