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

Java技術:SerialVersionUID作用介紹

開發 后端
英文翻譯的意思是序列化版本號。凡是實現Serializable接口的類都會有一個表示序列化版本標識符的靜態變量。

\[[402324]]

1.serialVersionUID概念介紹

英文翻譯的意思是序列化版本號。凡是實現Serializable接口的類都會有一個表示序列化版本標識符的靜態變量。

2.serialVersionUID的生成方式

默認的1L:比如:private static final long serialVersionUID = 1L; 。

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

比如:

private static final long serialVersionUID = 3959055215634785113L;

3.serialVersionUID原理

當定義一個實體類中如果沒有顯式的定義一個名為“serialVersionUID”、類型為long的變量時,Java序列化機制會根據編譯時的class自動生成一個serialVersionUID作為序列化版本比較,這種情況下,只有同一次編譯生成的class才會生成相同的serialVersionUID。比如,當我們編寫一個Java類時,隨著時間的推移,因為需求的改動,需要在該Java類中添加新的的字段,這個時候再反序列化時就會出現serialVersionUID不一致的情況,從而導致反序列化失敗。可以通過在本地Java類中添加一個“serialVersionUID”變量,值保持不變,便可以進行序列化和反序列化。如果Java類沒有顯示指定serialVersionUID,JVM會自動生成一個。

4、serialVersionUID作用

序列化時為了保持版本的兼容性,即在版本升級時反序列化仍保持對象的唯一性。

5、serialVersionUID注意事項

 

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

本文轉載自微信公眾號「IT技術分享社區」,可以通過以下二維碼關注。轉載本文請聯系IT技術分享社區公眾號。

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

 

責任編輯:武曉燕 來源: IT技術分享社區
相關推薦

2009-12-25 16:09:14

NGN用戶接入技術

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技術JSP入門

2009-07-02 12:56:01

JSP技術

2009-06-29 14:30:27

JSF技術

2023-12-10 16:48:00

Wasm瀏覽器

2012-07-30 13:15:58

EVB

2009-12-28 14:05:33

ACL控制

2020-12-30 05:33:30

Java網絡數據

2011-07-11 10:00:34

PHP緩存技術

2010-04-12 15:35:42

2010-03-15 14:41:59

2009-07-03 22:16:19

機房綜合布線

2010-04-21 17:53:09

負載均衡技術

2009-07-10 14:41:57

Swing技術

2011-05-24 13:57:25

2011-11-03 14:48:41

負載均衡服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色吊丝2288sds中文字幕 | 超碰地址| 国产精品久久久久久久久久久久 | av永久免费 | 日本一区二区三区在线观看 | 亚洲性视频在线 | 久久久久久久久久久蜜桃 | 日韩精品久久一区 | 欧美性大战xxxxx久久久 | 成人久久18免费网站 | 97国产一区二区 | av影音资源 | 亚洲一区亚洲二区 | 五月婷婷色 | 日韩在线播放视频 | 欧美性精品| 日韩福利视频 | 福利视频网站 | 欧美日韩在线一区二区三区 | 亚洲激情av | 99精品欧美一区二区三区 | 国产91久久精品一区二区 | 国产午夜视频 | 天天综合网91 | 久久综合成人精品亚洲另类欧美 | 91精品一区二区三区久久久久 | 黑人一级片视频 | 人成精品 | 国产夜恋视频在线观看 | 91精品国产色综合久久不卡98 | 91久久精品国产 | 51ⅴ精品国产91久久久久久 | 日韩不卡三区 | 欧美一区二区三区 | 少妇一区在线观看 | 在线观看国产wwwa级羞羞视频 | 欧美激情一区二区三区 | 精久久久 | 一级片视频免费观看 | 黄色大全免费看 | 亚洲香蕉在线视频 |