更新時(shí)間:2020-07-16 15:14:56 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2032次
請分別實(shí)現(xiàn)深度和淺讀的對象克隆?
原理:
深度克隆和淺度克隆,Object中的克隆方法是淺度克隆。JDK規(guī)定了克隆需要滿足的一些條件,簡要總結(jié)一下就是:對某個(gè)對象進(jìn)行克隆,對象的的成員變量如果包括引用類型或者數(shù)組,那么克隆的時(shí)候其實(shí)是不會(huì)把這些對象也帶著復(fù)制到克隆出來的對象里面的,只是復(fù)制一個(gè)引用,這個(gè)引用指向被克隆對象的成員對象,但是基本數(shù)據(jù)類型是會(huì)跟著被帶到克隆對象里面去的。而深度可能就是把對象的所有屬性都統(tǒng)統(tǒng)復(fù)制一份新的到目標(biāo)對象里面去。簡單畫個(gè)對比圖:
實(shí)現(xiàn)方式:
1). 實(shí)現(xiàn)Serializable接口,通過對象的序列化和反序列化實(shí)現(xiàn)克隆,可以實(shí)現(xiàn)真正的深度克隆;
2). 實(shí)現(xiàn)Cloneable接口并重寫Object類中的clone()方法,即可實(shí)現(xiàn)淺度克隆。
代碼:
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“樂視Java筆試題,你會(huì)不會(huì)解答這個(gè)程序”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743