老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

如何解析java對(duì)象序列化與反序列化原理

如何解析java對(duì)象序列化與反序列化原理,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到靜樂(lè)網(wǎng)站設(shè)計(jì)與靜樂(lè)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋靜樂(lè)地區(qū)。

這篇文章主要介紹了java對(duì)象序列化與反序列化原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、序列化和反序列化的概念

對(duì)象轉(zhuǎn)換為字節(jié)序列的過(guò)程稱為對(duì)象的序列化。把字節(jié)序列恢復(fù)為對(duì)象的過(guò)程稱為對(duì)象的反序列化。

二、序列化和反序列化的作用

對(duì)象的序列化主要有兩種用途:

把對(duì)象的字節(jié)序列永久地保存到硬盤上,通常存放在一個(gè)文件中。  在網(wǎng)絡(luò)上傳送對(duì)象的字節(jié)序列。網(wǎng)絡(luò)上傳輸?shù)亩际嵌M(jìn)制序列。

在很多應(yīng)用中,需要對(duì)某些對(duì)象進(jìn)行序列化,讓它們離開內(nèi)存空間,存到物理硬盤,以便長(zhǎng)期保存。比如最常見的是Web服務(wù)器中的Session對(duì)象,當(dāng)有10萬(wàn)用戶并發(fā)訪問(wèn),就有可能出現(xiàn)10萬(wàn)個(gè)Session對(duì)象,內(nèi)存可能吃不消,于是Web容器就會(huì)把一些seesion先序列化到硬盤中,等要用了再把保存在硬盤中的對(duì)象還原到內(nèi)存中。

當(dāng)兩個(gè)進(jìn)程在進(jìn)行遠(yuǎn)程通信時(shí),彼此可以發(fā)送各種類型的數(shù)據(jù)。無(wú)論是何種類型的數(shù)據(jù),都會(huì)以二進(jìn)制序列的形式在網(wǎng)絡(luò)上傳送。

發(fā)送方需要把這個(gè)Java對(duì)象轉(zhuǎn)換為字節(jié)序列,才能在網(wǎng)絡(luò)上傳送;接收方則需要把字節(jié)序列再恢復(fù)為Java對(duì)象。

三、JDK類庫(kù)中的序列化API

java.io.ObjectOutputStream代表對(duì)象輸出流,它的writeObject(Object obj)方法可把指定的obj對(duì)象進(jìn)行序列化,把得到的字節(jié)序列寫到一個(gè)目標(biāo)輸出流中。

java.io.ObjectInputStream代表對(duì)象輸入流,它的readObject()方法從一個(gè)源輸入流中讀取字節(jié)序列,再把它們反序列化為一個(gè)對(duì)象,并將其返回。

只有實(shí)現(xiàn)了Serializable和Externalizable接口的類的對(duì)象才能被序列化。Externalizable接口繼承自 Serializable接口,實(shí)現(xiàn)Externalizable接口的類完全由自身來(lái)控制序列化的行為,而僅實(shí)現(xiàn)Serializable接口的類可以 采用默認(rèn)的序列化方式 。

對(duì)象序列化包括如下步驟:

1) 創(chuàng)建一個(gè)對(duì)象輸出流,它可以包裝一個(gè)其他類型的目標(biāo)輸出流,如文件輸出流;

2) 通過(guò)對(duì)象輸出流的writeObject()方法寫對(duì)象。

對(duì)象反序列化的步驟如下:

1) 創(chuàng)建一個(gè)對(duì)象輸入流,它可以包裝一個(gè)其他類型的源輸入流,如文件輸入流;

2) 通過(guò)對(duì)象輸入流的readObject()方法讀取對(duì)象。

四、serialVersionUID的作用

serialVersionUID: 字面意思上是序列化的版本號(hào),凡是實(shí)現(xiàn)Serializable接口的類都有一個(gè)表示序列化版本標(biāo)識(shí)符的靜態(tài)變量。實(shí)現(xiàn)Serializable接口的類如果類中沒(méi)有添加serialVersionUID,則會(huì)報(bào)一個(gè)警告。

serialVersionUID有兩種生成方式:

采用img這種方式生成的serialVersionUID是1L,例如:

1 private static final long serialVersionUID = 1L;

采用img這種方式生成的serialVersionUID是根據(jù)類名,接口名,方法和屬性等來(lái)生成的,例如:

1 private static final long serialVersionUID = 4603642343377807741L;

serialVersionUID 這個(gè)序列化版本號(hào)的作用就是當(dāng)有修改的時(shí)候,會(huì)兼容之前的版本內(nèi)容,因?yàn)樾薷那昂蟮膕erialVersionUID 是一樣的,如果修改前后的序列化版本號(hào)不同,則會(huì)反序列化失敗。也就是說(shuō)當(dāng)我們自己去指定了serialVersionUID,就可以保證在這么多類中,這個(gè)編號(hào)是唯一的。這樣我們就可以在序列化后,去修改之前的類,例如添加屬性字段,或者新增一個(gè)方法而不會(huì)影響到后期的還原,還原后的對(duì)象照樣可以使用,而且還多了方法或者屬性可以用。

五、serialVersionUID的取值

serialVersionUID的取值是Java運(yùn)行時(shí)環(huán)境根據(jù)類的內(nèi)部細(xì)節(jié)自動(dòng)生成的。如果對(duì)類的源代碼作了修改,再重新編譯,新生成的類文件的serialVersionUID的取值有可能也會(huì)發(fā)生變化。

類的serialVersionUID的默認(rèn)值完全依賴于Java編譯器的實(shí)現(xiàn),對(duì)于同一個(gè)類,用不同的Java編譯器編譯,有可能會(huì)導(dǎo)致不同的 serialVersionUID,也有可能相同。為了提高serialVersionUID的獨(dú)立性和確定性,強(qiáng)烈建議在一個(gè)可序列化類中顯示的定義serialVersionUID,為它賦予明確的值。

顯式地定義serialVersionUID有兩種用途:

在某些場(chǎng)合,希望類的不同版本對(duì)序列化兼容,因此需要確保類的不同版本具有相同的serialVersionUID;

在某些場(chǎng)合,不希望類的不同版本對(duì)序列化兼容,因此需要確保類的不同版本具有不同的serialVersionUID。

六、總結(jié)

序列化是將對(duì)象進(jìn)行序列化,目的是方便存儲(chǔ)和在網(wǎng)絡(luò)中進(jìn)行傳輸。

但是需要注意的是序列化保存的是對(duì)象的狀態(tài),靜態(tài)變量屬于類的狀態(tài),因此 序列化并不保存靜態(tài)變量。

如果不想某個(gè)變量被序列化,則可以在該變量前加上Transient 關(guān)鍵字。

Transient 關(guān)鍵字的作用是控制變量的序列化,在變量聲明前加上該關(guān)鍵字,可以阻止該變量被序列化到文件中,在被反序列化后,transient 變量的值被設(shè)為初始值,如 int 型的是 0,對(duì)象型的是 null。

看完上述內(nèi)容,你們掌握如何解析java對(duì)象序列化與反序列化原理的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享標(biāo)題:如何解析java對(duì)象序列化與反序列化原理
URL分享:http://www.xueling.net.cn/article/phoegg.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 91网视频在线观看 | 欧美日韩在线精品一区二区三区激情综合 | 一本久久综合亚洲鲁鲁五月天 | av看片网站 | 国产爽爽视频 | 精品亚洲成a人片在线观看 国产老女人乱淫免费 | 精品国产免费人成网站 | 野花社区www高清图片 | 狠狠躁日日躁夜夜躁老司机 | 91免费无限观看 | 色综合天天综合网国产成人综合天 | 日本护士毛茸茸高潮 | 狠狠爱视频 | 欧美熟乱妇 | 精品亚洲在线 | 无码欧美一区二区三区 | 密室大逃脱第6期免费观看 一区二区无码免费视频网站 | 国产欧美一区二区精品性色超碰 | 中文字幕在线观看二区 | 亚洲香蕉在线观看 | 林深见鹿在线观看 | 欧美日韩一级有码在线视频 | 久久精品无套 | 中文字幕一综合88久久 | 中文字幕咪咪网 | 国产成人av在线播放不卡 | 中国黄色网址 | 白丝女仆裸体被强趴内裤啪啪 | 国产乱人视频在线播放 | 亚洲色综合 | 色站综合| 可直接看的三级网站 | 91桃色成人wangxhab | 亚洲欧美精品一中文字幕 | 久视频精品线在线观看的录制功能 | 凸输偷窥xxxx间谍自由 | 亚洲高清国产AV拍精品青青草原 | 日本视频网站在线观看 | 久一久久 | 外国av在线 | 伊人成伊人成综合网222 |