成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java技術(shù):SerialVersionUID作用介紹

開發(fā) 后端
英文翻譯的意思是序列化版本號(hào)。凡是實(shí)現(xiàn)Serializable接口的類都會(huì)有一個(gè)表示序列化版本標(biāo)識(shí)符的靜態(tài)變量。

\[[402324]]

1.serialVersionUID概念介紹

英文翻譯的意思是序列化版本號(hào)。凡是實(shí)現(xiàn)Serializable接口的類都會(huì)有一個(gè)表示序列化版本標(biāo)識(shí)符的靜態(tài)變量。

2.serialVersionUID的生成方式

默認(rèn)的1L:比如:private static final long serialVersionUID = 1L; 。

根據(jù)類名、接口名、成員方法及屬性等來生成一個(gè)64位的哈希字段:

比如:

private static final long serialVersionUID = 3959055215634785113L;

3.serialVersionUID原理

當(dāng)定義一個(gè)實(shí)體類中如果沒有顯式的定義一個(gè)名為“serialVersionUID”、類型為long的變量時(shí),Java序列化機(jī)制會(huì)根據(jù)編譯時(shí)的class自動(dòng)生成一個(gè)serialVersionUID作為序列化版本比較,這種情況下,只有同一次編譯生成的class才會(huì)生成相同的serialVersionUID。比如,當(dāng)我們編寫一個(gè)Java類時(shí),隨著時(shí)間的推移,因?yàn)樾枨蟮母膭?dòng),需要在該Java類中添加新的的字段,這個(gè)時(shí)候再反序列化時(shí)就會(huì)出現(xiàn)serialVersionUID不一致的情況,從而導(dǎo)致反序列化失敗。可以通過在本地Java類中添加一個(gè)“serialVersionUID”變量,值保持不變,便可以進(jìn)行序列化和反序列化。如果Java類沒有顯示指定serialVersionUID,JVM會(huì)自動(dòng)生成一個(gè)。

4、serialVersionUID作用

序列化時(shí)為了保持版本的兼容性,即在版本升級(jí)時(shí)反序列化仍保持對(duì)象的唯一性。

5、serialVersionUID注意事項(xiàng)

 

  • 當(dāng)實(shí)現(xiàn)java.io.Serializable接口的實(shí)體(類)沒有顯式地定義一個(gè)名為serialVersionUID,類型為long的變量時(shí),Java序列化機(jī)制會(huì)根據(jù)編譯的class自動(dòng)生成一個(gè)serialVersionUID作序列化版本比較用,這種情況下,只有同一次編譯生成的class才會(huì)生成相同的serialVersionUID 。如果我們不希望通過編譯來強(qiáng)制劃分軟件版本,即實(shí)現(xiàn)序列化接口的實(shí)體能夠兼容先前版本中未作更改的類,就需要顯式地定義一個(gè)名為serialVersionUID,類型為long的變量,不修改這個(gè)變量值的序列化實(shí)體都可以相互進(jìn)行串行化和反串行化。
  • 記住應(yīng)該總是在可序列化的類中包含這個(gè)字段,即使是在第一個(gè)類版本中,以便提醒自己這個(gè)字段的重要性。不要在未來的版本中改變這個(gè)字段值,除非你有意要改變類使其與舊的序列化對(duì)象不兼容。
  • 如果你的類序列化到硬盤上面后,你更改了類別的field(增加或減少或改名),當(dāng)你反序列化時(shí),就會(huì)出現(xiàn)異常的,這樣就會(huì)造成不兼容性的問題。但當(dāng)serialVersionUID相同時(shí),它就會(huì)將不一樣的field以type的預(yù)設(shè)值Deserialize,這個(gè)可以避開不兼容性的問題。
  • 當(dāng)我們的系統(tǒng)不太經(jīng)常需要序列化類時(shí),可以去掉這些警告,做如下設(shè)置:Window-->Preferences-->Java,將serializable class without serialVersionUID的設(shè)置由warning改為Ignore。然后Eclipse會(huì)重新編譯程序,那些警告信息也就消失了。但如果在開發(fā)大量需要序列化的類的時(shí)候,建議還原為原來的設(shè)置。這樣可以保證系統(tǒng)的性能和健壯。

本文轉(zhuǎn)載自微信公眾號(hào)「IT技術(shù)分享社區(qū)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系IT技術(shù)分享社區(qū)公眾號(hào)。

原文鏈接:https://mp.weixin.qq.com/s/gNmgJcTULeFYFVrBRqkTYA

 

責(zé)任編輯:武曉燕 來源: IT技術(shù)分享社區(qū)
相關(guān)推薦

2009-12-25 16:09:14

NGN用戶接入技術(shù)

2011-07-22 16:37:01

java接口

2011-07-11 16:55:31

Java

2021-03-01 12:40:02

JavaserialVersi代碼

2011-07-22 13:00:46

java

2009-07-02 10:27:20

JSP技術(shù)JSP入門

2009-07-02 12:56:01

JSP技術(shù)

2023-12-10 16:48:00

Wasm瀏覽器

2009-06-29 14:30:27

JSF技術(shù)

2012-07-30 13:15:58

EVB

2009-12-28 14:05:33

ACL控制

2020-12-30 05:33:30

Java網(wǎng)絡(luò)數(shù)據(jù)

2011-07-11 10:00:34

PHP緩存技術(shù)

2010-04-12 15:35:42

2010-04-21 17:53:09

負(fù)載均衡技術(shù)

2009-07-03 22:16:19

機(jī)房綜合布線

2010-03-15 14:41:59

2009-07-10 14:41:57

Swing技術(shù)

2011-05-24 13:57:25

2011-11-03 14:48:41

負(fù)載均衡服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 中文字幕在线观看第一页 | 国内精品视频一区二区三区 | 欧美精品一区在线观看 | 在线播放一区二区三区 | 91就要激情| 天天久 | 中文字幕在线剧情 | 99久久久国产精品免费消防器 | 欧美全黄 | 九色91视频| av片在线观看 | 午夜一区| 97色在线观看免费视频 | 日韩精品在线观看一区二区 | 日韩欧美三区 | 超碰97免费在线 | 欧洲一级毛片 | www.精品国产 | 中文字幕高清一区 | 欧美国产精品一区二区 | 欧美日韩国产在线 | 日本小电影在线 | 91免费在线播放 | 精品亚洲一区二区三区 | 综合久久久 | av三级在线观看 | 国产综合第一页 | 四虎成人免费视频 | 国产美女在线免费观看 | 日韩视频一区二区 | 精品国产乱码久久久久久a丨 | 国产乱码精品1区2区3区 | 九九在线视频 | 在线一区视频 | 九九热在线观看 | 一区不卡在线观看 | 一区二区视频 | 91精品久久久久久久久久 | 久久亚洲国产精品 | 午夜欧美 | 久久国产日韩欧美 |