国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Java序列化及serialVersionUID作用

serialVersionUID

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

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

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

序列化

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

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

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

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

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

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java序列化之Serializable
為什么使用Serializable(序列化)
Java程序員必備:序列化全方位解析
服務化基石之遠程通信系列五:序列化協(xié)議之二進制序列化
講真,下次打死我也不敢隨便改serialVersionUID了
Java對象的序列化和反序列化實踐
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服