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