久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java序列化及serialVersionUID作用

 WindySky 2017-06-28

serialVersionUID

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

類實現(xiàn)了Serializable接口時,如果沒有定義serialVersionUID,,在Eclipse中會提示你去定義,,在Eclipse中點擊類中的warning圖標時,Eclipse提供給我們兩種方式去生成serialVersionUID,,分別是:
1)默認的1L,,如:private static final long serialVersionUID = 1L;
2)根據類名、接口名,、包路徑,、成員方法及屬性等來生成一個64位的哈希字段,比如:private static final long serialVersionUID = -4743699992166046319L;

如果希望類的不同版本對序列化兼容,,我們就要確保各個不同版本的類要具有相同的serialVersionUID,;當然,如果你不希望不同版本的類對序列化兼容,,那么不同版本可以具有不同的serialVersionUID,。也就是說,當你序列化一個類實例后,,如果更改了一個字段,,或增加一個字段,,不設置serialVersionUID,所做的任何更改都會導致無法反序列化,,并且在序列化時拋出異常,。如果你增加了serialVersionUID,在反序列化時,,新添加或者更改的字段值將會設置成初始值(對象為null,,其他基礎類型對應相應的初始值),字段被刪除將不設置,。這就是serialVersionUID的作用,。

序列化

對象的序列化是指將對象轉換成字節(jié)序列的過程。

對象的反序列化是指字節(jié)序列轉換成對象的過程,。

在Java網絡編程編程中,,進程間可以發(fā)送各種類型的數據,但無論是那種類型的數據,,在網絡中傳輸都要以二進制序列的形式,,所以發(fā)送方需要把Java對象轉換成字節(jié)序列,;接收方則需要把字節(jié)序列轉化成Java對象,。這個過程中,Java對象轉化成字節(jié)序列的過程稱作為對象的序列化,,把字節(jié)碼恢復成Java對象的過程稱作為Java對象的反序列化,。

對象序列化主要有兩種用途:
  1)實現(xiàn)對象在網絡傳輸。
  2)實現(xiàn)對象的持久化,,例如:存放到文件,,DB中。

java.io.ObjectOutputStream是Java中的對象輸出流,,writeObject(Object obj)方法可對參數指定的obj對象進行序列化,,把得到的字節(jié)序列寫到一個目標輸出流中。java.io.ObjectInputStream是Java中的對象輸入流,,readObject()方法從一個源輸入流中讀取字節(jié)序列,,再把它們反序列化為一個對象,并將其返回,。

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多