日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 浅拷贝和深拷贝

發布時間:2024/9/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 浅拷贝和深拷贝 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實現拷貝有幾點:

1)實現Cloneable接口

2)重寫Object類中的clone方法,并將可見性從protect改為public

3)克隆需要調用super.clone(),也就是Object的實現方法

淺拷貝和深拷貝的區別:

????淺拷貝是指拷貝對象時僅僅拷貝對象本身(包括對象中的基本變量),而不拷貝對象包含的引用指向的對象。

????深拷貝不僅拷貝對象本身,而且拷貝對象包含的引用指向的所有對象。

以下代碼說明了淺拷貝的特征:

/***?@author?QinGuan*?@date:2016-2-29?下午04:03:03*?@version?:3.0**/ package?com.cloneTest;public?class?personChina?implements?Cloneable?{public?String?name;//淺拷貝public?int?age;//淺拷貝public?String[]?array;//淺拷貝public?vocation?vocation;//需要深拷貝的部分public?personChina(String?name,?int?age)?{super();this.name?=?name;this.age?=?age;}@Overrideprotected?Object?clone()?{personChina?personChina?=?null;try?{personChina?=??(personChina)?super.clone();//personChina.vocation?=?(vocation)?vocation.clone();①}?catch?(CloneNotSupportedException?e)?{e.printStackTrace();}return?personChina;} }/***?@author?QinGuan*?@date:2016-3-1?上午10:39:40*?@version?:3.0**/ package?com.cloneTest;public?class?vocation?implements?Cloneable{????//person的職業類public?String?name;@Overrideprotected?Object?clone()?throws?CloneNotSupportedException?{return?super.clone();} }

測試類:

/***?@author?QinGuan*?@date:2016-2-29?下午04:09:19*?@version?:3.0**/ package?com.cloneTest;public?class?test?{public?static?void?main(String[]?args)?throws?CloneNotSupportedException?{personChina?personChina?=?new?personChina("張三",?2);personChina.array?=?new?String[]{"數組內容"};personChina.vocation?=?new?vocation();personChina.vocation.name?="職業";personChina?personCopy?=?(personChina)?personChina.clone();personCopy.vocation.name?=?"職業Copy";?//拷貝后的person修改了職業名字System.out.println("拷貝前引用數據類型:?"?+?personChina.vocation.name);System.out.println("拷貝后string:?"?+?personCopy.name);System.out.println("拷貝后數組:?"?+?personCopy.array[0]);System.out.println("拷貝后引用數據類型:?"?+?personCopy.vocation.name);} }

注意①處,注釋后,personChina中的vocation屬性并沒實現克隆,運行結果: ??

????拷貝前引用數據類型: 職業Copy

????拷貝后string: 張三

????拷貝后數組: 數組內容

????拷貝后引用數據類型: 職業Copy

由運行結果可見: 注釋掉①處內容,就是淺拷貝,只能拷貝基本數據類型和字符串以及數組,無法拷貝其他引用數據類型,職業內容 前后一致,拷貝后的對象修改了職業,與此同時,拷貝前的職業也隨之被改變.

去掉①處的注釋,在personChina類克隆的時候也同時將其屬性vacation一起進行了克隆,由此實現深拷貝

再次運行程序,結果變為:?

????拷貝前引用數據類型: 職業

????拷貝后string: 張三

????拷貝后數組: 數組內容

????拷貝后引用數據類型: 職業Copy

拷貝前后,職業相互獨立,拷貝后的對象只改變了自己的職業屬性.


由此可見,淺拷貝前后的引用類型的屬性還是同一個對象,而深拷貝則連同引用類型的屬性也一并拷貝了一份,跟拷貝前的同一屬性相互獨立.

????


轉載于:https://blog.51cto.com/11083953/1746225

總結

以上是生活随笔為你收集整理的java 浅拷贝和深拷贝的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 小镇姑娘高清播放视频 | 色视频在线免费观看 | 碰在线视频 | 极品色综合 | 男人天堂你懂的 | 在线视频一区二区三区四区 | 极品少妇一区二区三区 | 丁香视频在线观看 | 中国亚洲老头同性gay男男… | 国产精品久久久久久在线观看 | av免费观看入口 | 丰满岳妇伦在线播放 | 中国黄色一级大片 | 日韩一级特黄 | 日韩欧美视频一区 | 国产不卡a | 99精品久久久 | 伊人自拍视频 | 国产黄色三级网站 | 在线看免费av| 欧美黑人又粗又大高潮喷水 | 女女同性被吸乳羞羞 | 亚洲欧美动漫 | 好吊视频一二三区 | 亚洲精品日日夜夜 | 性欧美极品另类 | 二区三区av | 国产激情一区二区三区四区 | 91成人精品国产刺激国语对白 | 超碰在线免费 | 视频一区二区不卡 | 天堂网va | 午夜黄色在线观看 | www.青青草.com | 久草福利免费 | 国产欧美一区二区三区鸳鸯浴 | 日韩精品美女 | 网站黄在线观看 | 久久久久久中文字幕 | 一区二区三区久久精品 | 亚洲图片欧美 | 成年人在线观看 | 午夜视频在线免费看 | h片在线免费看 | 淫片在线 | 天天操天天干天天摸 | 国产精品日日做人人爱 | 国产日本在线 | 成人高清在线 | 久草高清| 好看的av在线 | 免费三级黄 | 成年人看的网站 | 国产麻豆xxxvideo实拍 | 亚洲女人18毛片水真多 | 97久久精品视频 | 爱爱视频欧美 | 99精品视频播放 | 国产porn| 欧美日韩一区二区三区在线电影 | 在线看黄色网址 | 久久麻豆av| 天美视频在线观看 | 国产精品xxx在线观看 | 精品一区二区免费 | 日本少妇xxxx动漫 | 一级α片免费看刺激高潮视频 | 人妻一区二区三区 | 亚洲第一成人av | av在线www | 国产又粗又硬视频 | 国产专区一区二区 | 欧美日韩人妻精品一区在线 | 久久精品欧美日韩精品 | 一区二区在线免费看 | 果冻传媒av| 有码在线视频 | 91九色国产ts另类人妖 | 另类小说久久 | 成年人网站在线观看视频 | 日本妇女毛茸茸 | 国产91在线视频观看 | 男人添女人荫蒂国产 | 久久久18禁一区二区三区精品 | 啪啪av网| 香蕉国产在线观看 | 国产色一区 | 国产二区在线播放 | 长河落日电视连续剧免费观看 | 自拍偷拍国产精品 | 爱av在线| 久久人人爽人人 | 51啪影院| 亚洲九九九 | 国产午夜精品无码一区二区 | 国产91麻豆视频 | 人与禽一级全黄 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 色峰视频 |