原型模式那些門道兒

原型模式的門道兒,沒有那么淺娃殖,至少我覺得特別多。

1萧锉,jdk的淺克隆clone及深克隆實(shí)現(xiàn)

2珊随,利用序列化與反序列化進(jìn)行深克隆

3,clone會(huì)破壞單例

4柿隙,transient關(guān)鍵字-指定屬性不序列化(保護(hù)敏感信息)

5,克隆的巧妙運(yùn)用-當(dāng)你需要使用remove方法移除掉集合中的對象鲫凶,而非要修改集合中的對象的時(shí)候禀崖,可以選擇使用。

6螟炫,使用json復(fù)制對象(Spring BeanUtils香香噠)

感謝這個(gè)資源時(shí)代波附,蠻多優(yōu)秀認(rèn)真的文章,這里更多的是搬運(yùn)和思考昼钻。


先來看看JDK的Object的clone接口源碼說明(原創(chuàng))

Object clone源碼

推薦閱讀:淺談Java中的深克隆和淺克碌拧(阿里面試)

克隆(復(fù)制)在Java中是一種常見的操作然评,目的是快速獲取一個(gè)對象副本仅财。克隆分為深克隆和淺克隆碗淌。

淺克抡登蟆:創(chuàng)建一個(gè)新對象,新對象的屬性和原來對象完全相同亿眠,對于非基本類型屬性碎罚,仍指向原有屬性所指向的對象的內(nèi)存地址。

深克履上瘛:創(chuàng)建一個(gè)新對象荆烈,屬性中引用的其他對象也會(huì)被克隆,不再指向原有對象地址竟趾。

總之深淺克隆都會(huì)在堆中新分配一塊區(qū)域憔购,區(qū)別在于對象屬性引用的對象是否需要進(jìn)行克隆(遞歸性的)潭兽。


?推薦閱讀:java中的關(guān)鍵字transient倦始,這篇文章你再也不發(fā)愁了

1,transient關(guān)鍵字的作用山卦?

將不需要序列化的屬性前添加關(guān)鍵字transient鞋邑,序列化對象的時(shí)候诵次,這個(gè)屬性就不會(huì)被序列化。

2枚碗,transient底層實(shí)現(xiàn)原理是什么逾一?

serialization提供存儲對象狀態(tài)的機(jī)制(對象的狀態(tài)存儲到硬盤上),transient修飾的字段肮雨,他的生命周期僅僅在內(nèi)存中遵堵,不會(huì)被寫到磁盤中。

3怨规、被transient關(guān)鍵字修飾過得變量真的不能被序列化嘛陌宿?

不是。取決于對象實(shí)現(xiàn)哪個(gè)序列化接口(Serializable或Exteranlizable)波丰,后者可以自定義序列化壳坪。

4、靜態(tài)變量能被序列化嗎掰烟?沒被transient關(guān)鍵字修飾之后呢爽蝴?

靜態(tài)變量是不會(huì)被序列化的,即使沒有transient關(guān)鍵字修飾纫骑。

5蝎亚、妙用

銀行卡、密碼等敏感數(shù)據(jù)的

推薦閱讀:你還在用BeanUtils進(jìn)行對象屬性拷貝先馆?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末发框,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子磨隘,更是在濱河造成了極大的恐慌缤底,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件番捂,死亡現(xiàn)場離奇詭異个唧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)设预,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門徙歼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鳖枕,你說我怎么就攤上這事魄梯。” “怎么了宾符?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵酿秸,是天一觀的道長。 經(jīng)常有香客問我魏烫,道長辣苏,這世上最難降的妖魔是什么肝箱? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮稀蟋,結(jié)果婚禮上煌张,老公的妹妹穿的比我還像新娘。我一直安慰自己退客,他們只是感情好骏融,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萌狂,像睡著了一般档玻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粥脚,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天窃肠,我揣著相機(jī)與錄音,去河邊找鬼刷允。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碧囊,可吹牛的內(nèi)容都是我干的树灶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼糯而,長吁一口氣:“原來是場噩夢啊……” “哼天通!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起熄驼,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤像寒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后瓜贾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诺祸,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年祭芦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筷笨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡龟劲,死狀恐怖胃夏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情昌跌,我是刑警寧澤仰禀,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站蚕愤,受9級特大地震影響答恶,放射性物質(zhì)發(fā)生泄漏饺蚊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一亥宿、第九天 我趴在偏房一處隱蔽的房頂上張望卸勺。 院中可真熱鬧,春花似錦烫扼、人聲如沸曙求。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悟狱。三九已至,卻和暖如春堰氓,著一層夾襖步出監(jiān)牢的瞬間挤渐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工双絮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浴麻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓囤攀,卻偏偏與公主長得像软免,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子焚挠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359